Matplotlib是一个著名的库,用于在Python中绘制图表。
pyplot是Matplotlib的子集,用于绘制2D图表。其中,plot()画图函数,用它可以绘制点和线。
示例代码:
import matplotlib.pyplot as plt
import numpy as np
def testPlot():
"""
plot()画图函数,是绘制二维图形的最基本函数,用它可以绘制点和线。
语法格式如下:
# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
参数说明:
x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组,只能是秩为1的数组。
fmt:可选,定义基本格式(如颜色、标记和线条样式)。多条曲线不指定颜色时,会自动选择不同颜色。
颜色字符:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。
线型参数:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。
标记字符:'.' 点标记,',' 像素标记(极小点),'o' 实心圈标记,'v' 倒三角标记,'^' 上三角标记,'>' 右三角标记,'<' 左三角标记...等等。
**kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
"""
plt.rcParams['font.family'] = ['STFangsong']
Xpoints = np.array([0,4])
Ypoints = np.array([0,8])
XXpoints = np.array([0, 4])
YYpoints = np.array([0, 4])
plt.plot(Xpoints,Ypoints,"r",label = "(1)班成绩")
plt.plot(XXpoints, YYpoints, "b", label="(2)班成绩")
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("学生期中考试成绩")
legend = plt.legend(loc='upper left',shadow = True)
frame = legend.get_frame()
frame.set_facecolor("0.9")
plt.plot(Xpoints,Ypoints,XXpoints,YYpoints)
plt.plot(Xpoints,Ypoints,"g.")
XXXpoints = np.array([1, 2, 6, 8])
YYYpoints = np.array([3, 8, 1, 10])
plt.plot(XXXpoints, YYYpoints)
plt.plot(YYYpoints)
x = np.arange(0, 4 * np.pi, 0.1)
y = np.sin(x)
z = np.cos(x)
plt.plot(x, y, x, z)
plt.show()
设置图例
第一步:给plt.plot( )中参数label=’'传入字符串类型的值,也就是图例的名称
第二步:使用plt.legend( )使上述代码产生效果
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
n = np.linspace(-5, 4, 30)
m1 = 3 * n + 2
m2 = n ** 2
plt.xlabel('时间')
plt.ylabel('心情')
plt.plot(n, m1, color='r', linewidth=1.5, linestyle='-', label='女生购物欲望')
plt.plot(n, m2, 'b', label='男生购物欲望')
plt.legend()
plt.show()
图片读取与展示
import matplotlib.image as mpimg
def testImshow():
"""
plt.waitforbuttonpress()
等待用户输入,
如果键被按下则返回True,关闭图片
如果鼠标按钮被按下则返回False,最小化图片
如果在超时秒内没有输入则返回None。 负值使超时失效。
"""
img = mpimg.imread("孩童.jpg")
print(img.shape)
plt.imshow(img)
plt.waitforbuttonpress()
|