python matplotlib库
一、matplotlib库的简介
二、pyplot模块的使用
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family']='SimHei'#设置中文字体为黑体
matplotlib.rcParams['axes.unicode_minus']=False#设置负号显示正常
x = np.linspace(0,10,100)
y = np.sin(x)
plt.plot(x,y,"r")
f1 = plt.figure(1)
plt.title("我是图标题")
plt.xlabel("我是x轴标签")
plt.ylabel("我是y轴标签")
plt.text(np.pi,0.6,"我是图文字")
plt.ylim(-2,2)
plt.legend(labels=["我是图例"])
plt.show()
二、pyplot.plot()绘图函数的使用
注:颜色符号也可用RGB颜色,如:#00FF11
三、pyplot库坐标轴及标签等其他属性设置
①axis()函数
axis()函数是获取或设置坐标轴属性的快捷方法。axis()函数在使用时,可以通过传递参数设置x,y轴的取值区间,也可以通过传递参数设置坐标轴是否显示、x.y轴是否按比例显示等。调用该函数会返回一个由x轴取值区间边界值xmin、xmax和y轴取值区间边界值ymin、ymax组成的元组。
一般axis()函数的使用方法有如下几种:
xmin,xmax,ymin,ymax=axis() #返回当前坐标轴的区间信息
axis(xmin,xmax,ymin,ymax) #设置新的坐标轴的区间信息
xmin,xmax,ymin,ymax=axis(opition) #设置坐标轴的状态等信息
值描述‘on’坐标轴和标签可见‘off’坐标轴和标签不可见‘equal’通过更改轴的取值区间来设置相等的缩放比例‘scaled’通过更改绘图框的尺寸来设置相等的缩放比例‘tight’设置足够大的区间以显示所有数据‘auto’自动缩放‘normal’与‘auto’相同,已弃用‘image’坐标轴的取值范围根据数据范围进行缩放‘square’方形图,类似于’scaled’,但强制要求xmax-xmin = ymax-ymin
②xlim()函数
xlim()函数用于设置或者返回x轴的取值区间。xlim()函数可以通过传递参数,设置x轴的取值区间;也可以直接调用函数,返回当前x轴的取值区间。
xlim()函数的使用方法有如下几种:
xmin,xmax=xlim() #返回当前x轴的取值区间,返回由x轴区间值构成的元组类型
xlim(xmin,xmax) #设置x轴的取值区间
③ylim()函数
ylim()函数用于设置y轴的取值区间,使用方法和xlim()函数一致。
④xticks()函数
xticks()函数用于设置或返回x轴的刻度值或标签。xtick()函数可以通过传递参数,设置x轴的刻度值;也可以直接调用函数,返回当前x轴的刻度值。
xticks()函数的使用方法有如下几种:
x_ticks,labels=xticks() #返回当前x轴的刻度值和刻度标签
xticks(ticks,[labels]) #设置x轴的刻度值和刻度标签,标签可以省略
⑤yticks()函数
yticks()函数用于设置y轴的刻度值或标签。使用方法与xticks()函数一致。
⑥xlabel()函数
xlabel()函数用于设置x轴的标签。xlabel()函数通过传递参数,设置x轴的标签以及标签的属性。
xlabel()函数的使用方法如下所示:
xlabel(label) #把x轴的标签设置为label
⑦ylabel()函数
ylabel()函数用于设置y轴的标签。其使用方法与xlabel()函数类似。
⑧legend()函数
legend()函数可以通过传递参数,涉案值当前绘图区的图例。
legend()函数的使用方法如下所示:
legend([图例1[,图例2,图例3]) #在绘图区适当的位置显示一个或若干个图例
⑨text()函数
text()函数通过传递参数可以在指定的坐标位置显示相应的文本。
text()函数的使用方法如下所示:
text(x,y,s) #在坐标系的(x,y)坐标点,显示文本s
⑩title()函数
title()函数通过传递参数设置当前绘图区的标题及显示的位置,位置参数可以是center、left、right,默认参数是center。
title()函数的使用方法如下所示:
title(s,loc=‘center’) #为绘图区添加标题s,默认居中显示
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(10)
y1=x ; y2=2*x; y3=3*x
plt.plot(x,y1,"ro--",x,y2,"gv:",x,y3,"bs-")
plt.axis('scaled')# 设置x轴y轴按实际比例显示
plt.xlim(0,10)# 设置x轴的区间
plt.ylim(0,30)# 设置y轴的区间
plt.xticks([0,1,2,3,4,5,6,7,8,9,10])
plt.yticks([5,10,15,20,25,30],['a','b','c','d','e','f'])# 'a'与5对应,'b'与[10]对应
y_ticks,labels=plt.yticks()# 返回y轴的标签刻度值和对应标签
plt.xlabel("x-axis")# 设置x轴标签
plt.ylabel("y-axis")# 设置y轴标签
plt.legend(["y1=x","y2=2x","y3=3x"])# 添加图例
plt.text(4,2,"TEXT")# TEXT可以换成你想要显示的文本
plt.title("TITLE")# TITLE可以换成你想要显示的文本
plt.show()
四、pyplot模块中的绘图函数示例
①bar()函数
bar(x,height)函数:绘制横向条形图。
x:x轴对应的值:
height:与x对应的高度值。
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(7)
height=[3,4,7,6,2,8,9]
plt.bar(x,height)
plt.show()
②scatter()函数
scatter(x,y)函数:绘制散点图。
x:x轴对应的值;
y:与x对应的y的值。
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(7)
y=[3,4,7,6,2,8,9]
plt.scatter(x,y)
plt.show()
③pie()函数
pie(x,explode=None,labels=None,autopct=None,shadow=False)函数:绘制饼图,饼块逆时针摆放。
x:需要绘制饼图的数据集;
explode:设置饼块分离,默认为空(即饼块不分离),如果不为空,非零值将分离;
labels:设置饼块对应标签,默认为空;
autopct:设置饼块显示占比值,默认为空;
shadow:设置饼图是否有阴影,即立体效果,默认为False(即饼图是一个平面)。
import matplotlib.pyplot as plt
Labels ='Class-A','Class-B','Class-C','Class-D'
data =[15,30,45,10]
Explode =(0,0.1,0,0)
plt.pie(data,explode=Explode,labels=Labels,autopct='%.2ff%%')
plt.show()
五、子图绘制–subplot()函数
subplot()函数的前两个参数相当于把绘图区域分隔成nrows行、ncols列,共nrows行 X ncols个子区域;第三个参数index指定了当前的子区域索引号。子区域索引号按照行优先顺序,从1开始编号,步长为1,依次递增。
import matplotlib.pyplot as plt
plt.subplot(3,2,4)#3行2列共6个区域 将4号区域指定为当前绘图子区域
import matplotlib.pyplot as plt
plt.subplot(2,2,1)
plt.bar(range(7),[3,4,7,6,2,8,9])
plt.subplot(2,2,2)
plt.plot(range(7),[3,4,7,6,2,8,9])
plt.subplot(2,2,3)
plt.scatter(range(7),[3,4,7,6,2,8,9])
plt.subplot(2,2,4)
plt.barh(range(7),[3,4,7,6,2,8,9])
plt.show()
六、matplotlib库的中文显示问题
import matplotlib.pyplot as plt
plt.plot([1,2,4],[1,2,3])
plt.title("坐标系标题")
plt.xlabel('时间(s)')
plt.ylabel('范围(m)')
plt.show()
方法1
import matplotlib
matplotlib.rcParams[‘font.family’]=字体常量标识符 (一次性设置)
常见中文字体标示符常量及对应字体说明:
标示符描述‘Simhei’黑体‘Kaiti’楷体‘Microsoft YaHei’微软雅黑
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='Kaiti'#楷体
plt.plot([1,2,4],[1,2,3])
plt.title("坐标系标题")
plt.xlabel('时间(s)')
plt.ylabel('范围(m)')
plt.show()
方法2
在绘图函数中传递一个中文字体给参数fontproperties。(有针对性的设置某一个元素的中文显示)
import matplotlib.pyplot as plt
plt.plot([1,2,4],[1,2,3])
plt.title("坐标系标题",fontproperties="Simhei")#黑体
plt.xlabel('时间(s)',fontproperties="Kaiti")#楷体
plt.ylabel('范围(m)',fontproperties="Microsoft YaHei")#微软雅黑
plt.show()
版权归原作者 阿远ay 所有, 如有侵权,请联系我们删除。