300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python-Matplotlib画图教程

python-Matplotlib画图教程

时间:2023-11-04 12:45:51

相关推荐

python-Matplotlib画图教程

1. Matplotlib绘图流程

创建画布绘制图像

显示图像

下面代码演示

#简单画布import matplotlib.pyplot as plt# 1.创建画布plt.figure()#2. 图像绘制x = range(6)y = range(4,10)plt.plot(x,y)#3. 图像显示plt.show()

2.基础功能演示

1.画布参数:figure

figsize:画布大小设置,分别是x,y轴反向的大小

dpi:画布分辨率:

plt.figure(figsize=(20,10),dpi=200)

2.图像保存:savefige

需要在展示图像的前面设置,plt.show()会释放figure资源,如果在显示图像之后保存图像只能保存空图像。

参数写保存的图片地址。

plt.savefige('test.png')

3.自定义刻度:xticks,yticks

plt.xticks(x,**kwargs):x要显示的刻度值

plt.yticks(y,**kwargs):y要显示的刻度值

第一参数为需要显示的刻度值,需要数字类型第二个参数为要显示刻度名,如果没写,显示第一个参数创建的刻度值

出现以下问题是因为没有安装中文包

解决方法

可在代码中编写以下代码

matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文matplotlib.rcParams['axes.unicode_minus']=False# 正常显示负号

更多解决方法请点击链接查看:Python-matplotlib-中文字体显示和设置_shangyj17的博客-CSDN博客_python中英文字体

4.添加网格信息:grid

plt.grid(True,linestyle='--',alpha=1)

True:表示添加

linestyle:表示添加的是虚线还是实线

一个-表示实线两个--表示虚线

alpha:表示对应的透明度

5.添加描述信息

plt.xlabel:x轴标签plt.ylabel:y轴标签

plt.title:数据表标题

plt.xlabel('时间')plt.ylabel("温度")plt.title("一小时温度变化图",fontsize=20)

效果如下:可用fontsizea参数调节字体大小

5.多个信息

只需在原有的基础再次添加plot即可,但需区分线条,那就需要显示图例

plt.legend()

loc:显示位置,值默认为best,可填入0-10需要在plot里面添加label信息

6. 设置图形风格

plt.polt(x,y,color="r",linestyle='--',label='北京')

x:x轴数据y:y轴数据color:折线颜色linestyle:线条形状lebel:线条标签名

7.多个坐标系显示:plt.subplots(面向对象的画图方法)

显示效果如下:

fig,axes = plt.subplot(nrows=2,ncols=1,figsize=(20.8),dpi=200)

nrows:表示绘制几行图像ncols:表示绘制几列图像

注意:有些方法需要添加set_*,

以下是一个与多个区别,代码演示。

#温度实例import matplotlib.pyplot as pltimport randomimport matplotlibmatplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文matplotlib.rcParams['axes.unicode_minus']=False x = range(60)y_beijing = [random.uniform(10,15) for i in x]y_shanghai = [random.uniform(10,15) for i in x]## 画布#plt.figure(figsize=(20,8),dpi=100)fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=200)## 图像绘制# plt.plot(x,y_beijing,label='北京')# plt.plot(x,y_shanghai,label='上海',linestyle=':')axes[0].plot(x,y_beijing,color='r',label='北京')axes[1].plot(x,y_shanghai,label='上海',linestyle=':')## y刻度y_ticks=range(40)# plt.yticks(y_ticks[::5])axes[0].set_yticks(y_ticks[::5])axes[1].set_yticks(y_ticks[::5])# #x刻度x_ticks_label = ['11点{}分'.format(i) for i in x]# plt.xticks(x[::5],x_ticks_label[::5])axes[0].set_xticks(x[::5])axes[0].set_xticklabels(x_ticks_label[::5])axes[1].set_xticks(x[::5])axes[1].set_xticklabels(x_ticks_label[::5])# #添加网格# plt.grid(True,linestyle='-',alpha=1)axes[0].grid(True,linestyle='-',alpha=1)axes[1].grid(True,linestyle='-',alpha=1)# #添加信息# plt.xlabel('时间')# plt.ylabel("温度")# plt.title("一小时温度变化图",fontsize=20)axes[0].set_xlabel('时间')axes[0].set_ylabel("温度")axes[0].set_title("北京一小时温度变化图",fontsize=20)axes[1].set_xlabel('时间')axes[1].set_ylabel("温度")axes[1].set_title("上海一小时温度变化图",fontsize=20)# #显示图例# plt.legend(loc='best',fontsize=20)axes[0].legend(loc='best',fontsize=20)axes[1].legend(loc='best',fontsize=20)plt.show()

plot绘制数学图像(爱心)

效果如下:

具体代码如下

import numpy as np#生成数据x = np.linspace(-np.pi/2,np.pi/2,500) # 在【Π/2,Π/2】的范围内生成500个数y=(0.64*np.sqrt(abs(x))-0.8+1.2**abs(x)*np.cos(200*x))*np.sqrt(np.cos(x))plt.figure(figsize=(10,10),dpi=50)plt.plot(x,y,color='r')plt.grid()plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。