matplotlib学习
Posted miao-study
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matplotlib学习相关的知识,希望对你有一定的参考价值。
1.matplotlib基础用法
import matplotlib.pyplot as plt
import numpy as np
# 基础用法
x = np.linspace(-1,1,100)
y = 2*x + 1
plt.plot(x,y)
plt.show()
2.figure图像 figure()
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
- num:图像编号或名称,数字为编号 ,字符串为名称
- figsize:指定figure的宽和高,单位为英寸;
- dpi:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80;
- facecolor:背景颜色;
- edgecolor:边框颜色;
frameon:是否显示边框;
x = np.linspace(-1,1,100) y1 = 2*x + 1 y2 = x**2 plt.figure() plt.plot(x,y1) plt.figure() plt.plot(x,y2) plt.show()
3.设置坐标轴 gca()
#设置坐标轴
x = np.linspace(-3,3,100)
y1 = 2*x + 1
y2 = x**2# xy范围
plt.xlim(-1,2)
plt.ylim(-2,3)
# xy轴描述
plt.xlabel(‘I am X‘)
plt.ylabel(‘I am Y‘)
# 设置xy轴单位长度
new_ticks = np.linspace(-1,2,10)
plt.xticks(new_ticks)
plt.yticks([-1,0,1,2,3],
[‘l1‘,‘l2‘,‘l3‘,‘l4‘,‘l5‘])
# 获取坐标轴,设置边框
ax = plt.gca()
ax.spines[‘right‘].set_color(‘none‘)
ax.spines[‘top‘].set_color(‘none‘)
# 设置坐标轴刻度位置
ax.xaxis.set_ticks_position(‘bottom‘)
ax.yaxis.set_ticks_position(‘left‘)
# 设置边框零点
ax.spines[‘bottom‘].set_position((‘data‘,0))
ax.spines[‘left‘].set_position((‘data‘,0))plt.plot(x,y1,color=‘red‘,linewidth=1.0,linestyle=‘--‘)
plt.plot(x,y2,color=‘blue‘,linewidth=2.0,linestyle=‘-‘)
plt.show()4.图例 legend()
#legend 图例
x = np.linspace(-3,3,100)
y1 = 2*x + 1
y2 = x**2
# 保存图线
l1, = plt.plot(x,y1,color=‘red‘,linewidth=1.0,linestyle=‘--‘)
l2, = plt.plot(x,y2,color=‘blue‘,linewidth=2.0,linestyle=‘-‘)
plt.legend(handles=[l1,l2],labels=[‘test1‘,‘test2‘],loc=‘best‘)
plt.show()5.图像标注
x = np.linspace(-3,3,100)
y1 = 2*x + 1
y2 = x**2# 获取坐标轴,设置边框
ax = plt.gca()
ax.spines[‘right‘].set_color(‘none‘)
ax.spines[‘top‘].set_color(‘none‘)# 设置边框零点
ax.spines[‘bottom‘].set_position((‘data‘,0))
ax.spines[‘left‘].set_position((‘data‘,0))# 图像标注
x0 = 0.5
y0 = 2*x0 + 1# 画点
plt.scatter(x0,y0,s=50,color=‘green‘)# 画虚线 从(x0,y0)到(x0,0)点画一条虚线
plt.plot([x0,x0],[y0,0],‘k--‘)
plt.plot([x0,0],[y0,y0],‘k--‘)# 画一条指向箭头
plt.annotate(r‘$2x+1=%s$‘ % y0, xy=(x0,y0), xytext=(-10,+50),
textcoords=‘offset points‘,fontsize=14,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))# 设置显示汉字
plt.rcParams[‘font.sans-serif‘]=[‘SimHei‘]
plt.text(-2.3,6,u‘你好‘,fontdict={‘size‘:‘14‘,‘color‘:‘green‘})plt.plot(x,y1,color=‘red‘,linewidth=1.0,linestyle=‘--‘)
plt.plot(x,y2,color=‘blue‘,linewidth=2.0,linestyle=‘-‘)
plt.show()6.散点图 scatter()
# 散点图
x = np.arange(5)
y = np.arange(5)plt.scatter(x,y)
plt.show()plt.xlim((-3,2))
plt.ylim((-3,2))plt.xticks(())
plt.yticks(())plt.scatter(np.random.normal(0,1,500),
np.random.normal(0,1,500),
s=50,c=‘y‘,alpha=0.5)
plt.show()7.直方图 bar()
# 直方图
x = np.arange(10)
y = 2**x+1
plt.bar(x,y)
for x,y in zip(x,y):
plt.text(x,y,‘%s‘%y,ha=‘center‘,va=‘bottom‘)
plt.show()8.子图 subplot()
# subplot子图
plt.figure()
plt.subplot(2,2,1)
plt.plot([1,4],[-3,4])plt.subplot(2,2,2)
plt.plot([1,4],[-3,4])plt.subplot(2,2,3)
plt.plot([1,4],[-3,4])plt.subplot(2,2,4)
plt.plot([1,4],[-3,4])
plt.show()
以上是关于matplotlib学习的主要内容,如果未能解决你的问题,请参考以下文章
在 matplotlib 内联和 QT 后端之间切换 Python 脚本