其他分享
首页 > 其他分享> > matplotlib基础

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