Python自动化处理电化学数据并一键出图---入门小训练
作者:互联网
Python 画电化学图 入门小训练
如果你一直都是生化环材专业,连C语言都没有学过的同学,可以看看这个东西来进行简单的python及matplotlib的入门训练。
本文仅作为记录自己的学习代码后结合自己科研的分享,转载请说明出处,欢迎评论和讨论。
打印
#这个print是必备的函数
print('hello world','这里要给要打印输出的东西加一个引号')
print("hello world",'可以是双引号或者单引号')
print('-'*10,'分割线','-'*10)
print('print(xxxx)可以做运算')
print(1)
print(1+1)
print(3*6)
print((3+6)*(9+2))
print('-'*10,'分割线','-'*10)
print('#号后面加的东西都不打印')
print('-'*10,'分割线','-'*10)
print('''
ctrl+enter 运行
ctrl+? 注释
''')
print('-'*10,'分割线','-'*10)
a = '今天是'
b = 6
print('占位符号的用法,(这里插入a)%s>>>5月>>>(这里插入b)%d号'%(a,b))
判断语句 if else
#判断函数,可以循环套娃
a=3333
# a=1
# b=3333
b=1
if(a>b):
print('a>b')
elif(a==b):
print('a=b')
else:
print('a<b')
循环 for
#range函数,是3到7但是不包括7,最后一个数字不包括
for i in range(3,7):
print(i)
print('打印出%d'%i)
#函数的赋值运算,将c赋值
# c=range(0,6)
c=range(6)
for a in c:
print(a)
bool 运算
a=True
b=True
c=False
if(a and b):
print('全对')
else:
print('不全对')
a='ab'
b='ad'
if(a in b):
print('a in b')
else:
print("a not in b")
#布尔运算就算逻辑运算,判读对错常用
函数
#这里只是一个函数的名字,没有什么特别
def hanshumingzi(a=1,b=2):
return a+b,a,b
#定义了函数之后,然后返回,这里是新建了一个可以说是execel表吧,装新参数
c,a,b=hanshumingzi(1)#这些参数就可以运算,括号里面放1个数字,这时候就会把1赋值给函数里面的第一个数
print(c,a,b)
数组索引
import numpy as np #导入函数功能包
data=np.linspace(0,100,10)
# data=np.linspace(0,100,50)
#调用函数功能包的子菜单的linspace等差数列函数,第一个数字3是开始,第二个数字是结束,第三个数字是个数
print(data)
#打印data盒子里面的东西
print(data[-2])
#打印data盒子里面的倒数第二个数字,0是第一个数字,1是第二个数字
print(data[0])
类型转换
a='9' #引号里面的东西是str的意思
print(a)
#print(a+3)#
print(type(a)) # type函数就是看看里面的东西是什么种类
b=np.float(a) # np包的子菜单的float函数就是浮点数,就是带有小数点的数字
print(b,type(b),b+3) #print函数里面可以直接做数学运算,对于float和整数才可以,对于str不可以
# 列表,数组,字典
a=['9','10'] #a是一个有两个字符串str的,()小括号是函数的意思,[]中括号是列表的意思,{}大括号是字典功能
# a="9,10" #这样的才能打出9,10
print(a)
b=np.array(a,dtype=int)
# np函数的子菜单的array函数,第一个是对象,第二个是类型(没有也可以),会将列表转化为数组(没有逗号),可以计算和计算顺序
print(a,b,b[1]) #打印a和b,还有b的第二个
dictionary = {'快乐':'0','开心':'1','幸福':'100','运气':'试试试看'} #{键:值,key:value}
print(type(dictionary))
print(dictionary['快乐'])
print(dictionary['开心'])
print(dictionary['运气'])
猜拳游戏
import random
player_str = input('输入你的选择,石头/1 剪刀/2 布/3\n')
player = int(player_str)
computer = random.randint(1, 3) # 逗号后加空格,虽然不影响结果,
# 但会有波浪提示
if player - computer == -1 or player - computer == 2:
print('你赢了')
elif computer - player == -1 or computer - player == 2:
print('电脑赢了')
else:
print('平局')
print('因为电脑输出了', computer) # 没有字符串自动强类型转换,不能拼接
# 直接逗号分开,他会一个个给你输出滴
九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={}\t'.format(j, i, i*j), end='')
print()
绘图
import matplotlib as mpl #导入matplolib,命名为mpl
import matplotlib.pyplot as plt #导入matplotlib里面的pyplot,命名为plt
import numpy as np #导入numpy,命名为np
from matplotlib.ticker import MultipleLocator, FormatStrFormatter #从matplot.lib的ticker选项里面导入,多重定位,格式化字符格式
mpl.rcParams["font.family"] = 'Arial' #默认字体类型 #mpl导入暂时设置的格式母版,为arial
mpl.rcParams["mathtext.fontset"] = 'cm' #数学文字字体 #mpl导入暂时设置的数学公式字体,为cm
dt = 0.01 #令dt等于0.01
t = np.arange(dt, 20.0, dt) #t为一个数列,从0.01到20.0,间距为0.01
# print(t)
y=np.log10(t) #设计y的函数,为np的log10函数,x变量为t
# 线性坐标轴
plt.figure(figsize=(4,3), constrained_layout='True') #画图,画布,画布大小为,打开自动排版
ax=plt.gca() #ax为画图,获取当前坐标轴
ax.plot(t,y) #在这个坐标轴里,绘图,t为x,y为y
ax.grid() #在这个坐标轴里面,显示网格线,不进行任何设置,把所有网格漏出来
# # save fig
# plt.savefig('../../figures/Chapter1/plot_logt.pdf')
# x轴为对数,半对数坐标系
plt.figure(figsize=(4,3), constrained_layout='True') #画图,画布,画布大小,自动排列开票
ax=plt.gca() #坐标轴为,绘图,获取当前坐标轴
ax.loglog(t,y) #坐标轴里,画图,x和y都取对数来画图
ax.grid() #坐标轴里,显示网格线,默认
# # save fig
# plt.savefig('../../figures/Chapter1/semilogx.pdf')
plt.show()
图中图
dt = 0.01 #令dt等于0.01
t = np.arange(dt, 20.0, dt) #t是一个np的数列函数,dt到20.0,间距为0.01
y=np.exp(t) #y是np。exp的函数,变量为t
####我感觉了,np就是一个excel软件包,里面可以放东西,可以计算,因为有很多函数
# 1. 主图
plt.figure(figsize=(4,3), constrained_layout='True') #绘图,画布,画布大小,打开自动排版
ax=plt.gca() #ax等于绘图,获取当前坐标轴
ax.plot(t,y) #ax坐标轴里,出图,t为x,y为y
#2. 图中图
axin=ax.inset_axes([0.02,0.45,0.48,0.48]) # 括号内参数:x0,y0,w,h
#axin等于,ax坐标轴里,插图张,坐标轴,【插图左上角和原坐标(总长度为1)左上角的x距离,y距离,插图的宽度,插图的高度】
# axin.xaxis.set_ticks([]) #这里也可以用那个null什么的locator来用,但是这样个好记忆
# axin.yaxis.set_ticks([]) #axin坐标轴,y轴,设置刻度,为,【无】
axin.yaxis.set_ticks_position('right')#axin坐标,y轴,设置刻度位置,右边
axin.plot(t,y) #axin坐标轴里,出图,x为t,y为y
axin.set_xlim(15,20) #axin里,设置x的范围
axin.set_ylim(0,4E8) #axin里面,设置y的范围,可以科学计数法
# 3. 添加一个指示框
ax.indicate_inset_zoom(axin,fc='lightgreen',alpha=0.5,ec='red') #face color, edge color
#ax坐标轴,指示插入的放大图(动作),对象为axin,颜色为,透明度为,边框为。
#这个指示的时候的线是出现在两个图的相同的角度的
# save fig
# plt.savefig('inset1_indicate.png',dpi=300) #随便玩后缀和dpi
plt.show()
本文仅作为记录自己的学习代码后结合自己科研的分享,转载请说明出处,欢迎评论和讨论。
标签:10,axin,Python,坐标轴,---,np,出图,print,ax 来源: https://blog.csdn.net/drbingibng/article/details/112630134