matplotlib基础
作者:互联网
如何安装:pip install matpltlib即可
1.画一条直线
1 x = np.arange(1,10,1)#不包含终点 #包含终点x = np.linspace(1,10,1) 2 y = x + 1 3 plt.title('first') 4 plt.xlabel('this is x') 5 plt.ylabel('this is y') 6 plt.plot(x,y) 7 plt.savefig("1.jpg")#保存图片 8 plt.show()
2.画两条线
在第一个例子的基础上我们使用subplot(),让可以同时显示两个图
from matplotlib import pyplot as plt import numpy as np import random x = np.arange(1,10,1) y = x + 1 plt.subplot(121),plt.plot(x,y) plt.title('first') plt.subplot(122),plt.plot(-x,y) plt.title('second') plt.show()
subplot(a,b,c)中a代表所画图形的行数 b代表所画图形的列数 c代表所画图形的序号,比如subplot(2,2,1),就是两行两列的第一个,排序是从左至右,从上至下
当然我们也可以让这两个图分开显示,这里使用figure,创建两个不同的figure,这里dip越大越清晰,但是随着增大在不改变figsize的情况下图也会变大
from matplotlib import pyplot as plt import numpy as np import random x = np.arange(1,10,0.1) y1 = np.sin(x) y2 = np.cos(x) plt.figure(num=1,figsize=(8,6),dpi=50,facecolor='white',edgecolor='k') plt.plot(x,y1) plt.figure(num=2,dpi=100,facecolor='r',edgecolor='k',figsize=(5,3)) plt.plot(x,y2,'or') plt.show()
matplotlib中有很多样式的简写,例如我写的‘or’代表 “点 红“
具体还有很多样式,可以去网上查
3.修改坐标轴
-让坐标显示到(0,0)
from matplotlib import pyplot as plt import numpy as np x = np.arange(-np.pi*2,np.pi*2,0.1) y = np.sin(x) plt.plot(x,y) ax = plt.gca()#获取当前轴Get Current Axes
ax.spines['right'].set_color('none')#设置无色,即看不见
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))#设置显示位置0
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
#plt.axis('off')#这个将不显示坐标轴 plt.show()
-设置坐标轴显示范围
在上面的例子基础上添上一句
plt.xlim(-np.pi,np.pi) plt.ylim(-1,1)
图像将变成这样,那么其他的就没了吗?
其实点击拖动按钮,你可以发现图像依旧是完成的并未裁切
还有一点是xlim()和ylim()是左右都是闭合的,print一下就可以看到
h2> -重设置坐标ticks
有时可能线会遮挡看坐标,比如下面我将线宽度设置为100时,很多坐标已经看不到了,这时可以重新设置坐标
from matplotlib import pyplot as plt
import numpy as np
x = np.arange(-10,11)
y = x+3
new_ticks = np.linspace(-10,10,10)
plt.xticks(new_ticks)
plt.yticks([-7,5,14],
['bad','middle','good'])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
plt.plot(x,y,linewidth = 100,zorder=1)
plt.show()
这样y轴就会显示我所设置的东西,x轴按设置的分成(10-1)份,10个点
接下来来修改坐标值透明度,在show前添加代码
for label in ax.get_xticklabels() + ax.get_yticklabels(): label.set_fontsize(12) label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.7, zorder=2))
标签:10,set,基础,matplotlib,spines,plt,np,ax 来源: https://www.cnblogs.com/Truedragon/p/12862519.html