Python 画图

             

1. python 绘图库 matplotlib 的使用

   python 绘图有很多库,其中 matplotlib 库是最受欢迎的绘图库.如果熟悉 Matlab 软件的用户,对 matplotlib 库就很容易上手,因为 matplotlib 中很多命令命名与用法与 matlab 十分类似.首先在使用之前需要导入模块,并取别名 plt.

import matplotlib.pyplot as plt
如果使用 jupter 等在线编辑器,一般需要加入
% matplotlib inline
来告诉解释器在浏览器中显示图像.现在我们来看看如何使用这个库.例如在 [0,5] 区间均匀取 30 个点,分别计算 $ \sin\left(x\right) $ 与 $ \exp\left(x\right) $,并作图
A = np.linspace(0,5,30) 
B = np.sin(A)
C = np.exp(-A)
plt.plot(A,B)
plt.hold(True)
plt.plot(A,C)
上述代码通过 hold 把两个图像放在一张画布上面,如图 1 所示.

图
图 1:$ \sin\left(x\right) $ 与 $\exp{x}$

   下面给一个综合案例来详细说明这个库的具体使用.结果如图 2 所示.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl

mpl.rcParams["font.sans-serif"]=['kaiti']
mpl.rcParams['axes.unicode_minus']=False
plt.subplot(211)
x = np.linspace(0,10,1000)
y = np.cos(x)
x1 = np.linspace(0,10,20)
y1= np.cos(x1)
plt.plot(x,y, ls='-',lw='2',label='曲线图')
plt.scatter(x1,y1,c='b',label='散点图')

plt.xlim(-1,11)
plt.ylim(-1.1,1.1)
plt.xlabel('x轴',fontsize=20)
plt.ylabel('y轴',fontsize=20)
plt.grid(ls='-.',c='r')
#绘制平行坐标轴直线
plt.axhline(y=0,c='g',ls='-',lw=3)
plt.axvline(x=0,c='g',ls='-',lw=3)
#绘制垂直于坐标轴的区域
plt.axvspan(xmin=0,xmax=1,facecolor='y',alpha=0.5)#facecolor或者fcc
plt.axhspan(ymin=0,ymax=0.2,fc='r',alpha=0.5)
#添加箭头注释
plt.annotate('注释内容',
xy=(2,0),
xytext=(3,0.2),
weight='bold',
color='b',
fontsize=20,
arrowprops=dict(arrowstyle='->',
connectionstyle='arc3',
color='b'))
#添加文本注释
plt.text(2,0.8,r'普通文本 $\sin(\pi x)$',color='b',weight='bold',fontsize=20)
plt.title('图像标题',fontsize=20)
plt.legend(loc='upper right',title='图例标题',fontsize=20)#里面可有参数
plt.tick_params(labelsize=20)

plt.subplot(212)
plt.plot(x,y,'r-',lw=2)

plt.xticks([0,5,10],[r'$\pi$',r'$2\pi$','C'],rotation=20)
plt.ylim(1,-1)
plt.xlabel('自定义坐标刻度,倒序并旋转',fontsize=20)
plt.text(5,0,'MATPLOTLIB',size=20,rotation=30,
bbox=dict(boxstyle='round',edgecolor='r',facecolor='gray'))
plt.tick_params(labelsize=20)
plt.show()
先看一下效果图

图
图 2:matplotlib 库的基本使用
  1. 代码 1-3 行先导入需要使用的 python 库
  2. 5-6 行对字体进行设置,默认情况下中文不显示
  3. 7 行在一个画布上面划分两行一列的区域,并将后续作图显示在第一个区域
  4. 8-11 行产生 xy 数据
  5. 12,13 行分别绘制曲线图与散点图,lslinestyle 缩写,lwlinewidth 缩写,ccolorlabel 是图例名称
  6. 15-19 行分别限制坐标轴范围,设置坐标轴名称,已经添加网格线操作.
  7. 后续代码,相关说明可以看源码注释部分
致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

广告位

投放详情

         

© 小时科技 保留一切权利