matplotlib(一):基本操作
程序员文章站
2022-05-27 16:11:54
...
参考文档:https://blog.csdn.net/qq_40589051/article/details/80574155
1.matplotlib的基本操作
import matplotlib.pyplot as plt
import numpy as np
#基本用法
x = np.linspace(-1,1,50)
y1 = 2*x + 1
plt.plot(x,y1)
plt.show()
2.figure的使用
import matplotlib.pyplot as plt
import numpy as np
#figure图像
x = np.linspace(-1,1,50)
y1 = 2*x + 1
y2 = 3*x + 5
#设定画布一的大小
plt.figure(num=1,figsize=(8,5))
plt.plot(x,y1)
#设置画布二的大小
plt.figure(num=2,figsize=(10,4))
plt.plot(x,y2)
plt.show()
弹出两个画布框,大小不同。
plt.plot画直线,可以设置颜色,线条宽度,以及线条样式,比如:
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
import numpy as np
import matplotlib.pyplot as plt
#创建画布1,命名为fig1
fig1 = plt.figure(num='fig1',figsize=(6,3),dpi=75,facecolor='#666666',edgecolor='#0000FF')
#创建画布2,命名为fig2
fig2 = plt.figure(num='fig2',figsize=(6,3),dpi=75,facecolor='#FFFFFF',edgecolor='#FF0000')
#设置画布2的坐标范围
plt.xlim(0,20)
plt.ylim(0,10)
#**画布1
plt.figure(num='fig1')
plt.xlim(0,20)
plt.ylim(0,10)
plt.show()
plt.close()
3.设置坐标轴
import matplotlib.pyplot as plt
import numpy as np
#figure图像
x = np.linspace(-1,1,50)
y1 = 2*x + 1
y2 = 3*x + 5
plt.figure(num=1,figsize=(8,5))
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
#设置x轴刻度范围
plt.xlim((-1,0.5))
plt.ylim((1,2))
#设置X轴坐标标签
plt.xlabel('xxxx')
plt.ylabel('yyyy')
plt.show()
详细设置坐标轴的刻度,可以使用plt.xticks():
new_ticks = np.linspace(-1,1,10)
#设置刻度值
plt.xticks(new_ticks)
#设置刻度的具体含义
plt.yticks([1,1.5,2],['bad','ok','good'])
坐标轴图中一共有四根,left,right,bottom,top。可以对其进行删除,换色,换位置等操作。
ax = plt.gca() #获取整个图
ax.spines['right'].set_color('none') #将边框设置为无色
ax.spines['top'].set_color('none')
#把x轴移动到了y轴1.5的位置作为坐标原点。
ax.xaxis.set_ticks_position('bottom') #将x轴移动
#outward,axes(按照不同的标准定位,data是其中一个标准。)
ax.spines['bottom'].set_position(('data',1.5))
4.设置图例
有的时候图像上不止有一根线,为了区分和标注,得生成图例,以便于分析图像。
#!/usr/bin/python
#coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1, 11, 1)
# plt.plot(x, x * 2, label = "First")
# plt.plot(x, x * 3, label = "Second")
# plt.plot(x, x * 4, label = "Third")
# loc 设置显示的位置,0是自适应
# ncol 设置显示的列数
# plt.legend(loc = 0, ncol = 2)
# 也可以这样指定label
label = ["First", "Second", "Third"]
plt.plot(x, x * 2)
plt.plot(x, x * 3)
plt.plot(x, x * 4)
plt.legend(label, loc = 0, ncol = 2)
plt.show()
结果如下图:
上一篇: 使用js进行时间戳与日期的相互转化
下一篇: 【Java】Java8日期处理实践