赞
踩
目录
Matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图,正弦曲线,甚至是三维图形。
全局定义:
- import numpy as np
- import matplotlib.pyplot as plt
- import numpy as np
- import matplotlib.pyplot as plt
-
- def line_test():
- # 它包含了50个元素的数组,这50个元素均匀的分布在[0, 2*pi]的区间上。然后通过np.sin(x)生成y
- x = np.linspace(0, 2 * np.pi, 50)
- y = np.sin(x)
-
- # 通过plt.plot(x, y)来画出图形,并通过plt.show()来显示。
- plt.plot(x, y)
- plt.show()
结果:
将plot函数改为:plt.plot(x, y, 'm--')
结果为:
列举常用样式,三个组合使用,决定线的样式:
1、常见颜色表示:
颜色 | 蓝色 | 绿色 | 红色 | 青色 | 品红 | 黄色 | 黑色 | 白色 |
表示方式 | b | g | r | c | m | y | k | w |
2、常见点类型:
点类型 | 点 | 像素 | 圆 | 方形 | 三角形 |
表示方式 | . | , | 。 | s | ^ |
3、常见线类型:
线类型 | 直线 | 虚线 | 点线 | 点划线 |
- | -- | : | : | -. |
- plt.plot(x, y, 'm--', label="y=sin(x)") # 添加图例
- plt.legend(loc='best') # 自动适配最佳位置
结果:
plt.figure(figsize=(6, 4), dpi=100) # 画布调整为 600*400, w*h
结果:
其中dpi为每英寸的像素点数,默认为100。figsize=(w, h),最终的画布大小为(w*dpi, h*dpi)。
https://blog.csdn.net/weixin_39956558/article/details/110908699#commentBox
- plt.title("y=sin(x)") # 设置标题
- plt.xlabel('X') # xlabel 和 ylabel 来设置轴的名称
- plt.ylabel('Y')
- # 设置坐标轴的刻度,范围
- plt.xlim((0, 2 * np.pi))
- plt.ylim((-2, 2))
-
- # 可以通过 xticks 和 yticks 来设置轴的刻度
- plt.xticks((0, np.pi * 0.5, np.pi, np.pi * 1.5, np.pi * 2))
结果:
- plt.plot(x, y, 'm--', label="y=sin(x)")
- plt.plot(x, np.cos(x), 'g', label="y=cos(x)")
- plt.legend(loc='best')
结果:
- plt.savefig("vis.jpg")
- plt.savefig("test.png", dpi=120) # 指定分辨率
- x = ['南京', '上海', '成都', '香港']
- y = [60600, 53000, 50400, 52000]
- plt.plot(x, y)
- plt.title("中文乱码")
- plt.show()
其实只需要配置下后台字体即可。
- x = ['南京', '上海', '成都', '香港']
- y = [60600, 53000, 50400, 52000]
-
- plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
- plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
- plt.plot(x, y)
- plt.title("中文正常")
- plt.show()
- def test1():
- x = np.linspace(0, 2 * np.pi, 50)
- y = np.sin(x)
-
- plt.plot(x, y, label="sin(x)")
- plt.legend(loc='best')
-
- #####添加注释######
- # 需要对特定的点进行标注,我们可以使用 plt.annotate 函数来实现。
- # 这里我们要标注的点是 (x0, y0) = (π, 0)。
- # 我们也可以使用 plt.text 函数来添加注释。
- x0 = np.pi
- y0 = 0
-
- # 画出标注点
- plt.scatter(x0, y0, s=50)
- plt.annotate('sin(np.pi)=%s' % y0, xy=(np.pi, 0), xycoords='data', xytext=(+30, -30),
- textcoords='offset points', fontsize=16,
- arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))
- # 对于 annotate 函数的参数,做一个简单解释:
- # 'sin(np.pi)=%s' % y0 代表标注的内容,可以通过字符串 %s 将 y0 的值传入字符串;
- # 参数 xycoords='data' 是说基于数据的值来选位置;
- # xytext=(+30, -30) 和 textcoords='offset points' 表示对于标注位置的描述 和 xy 偏差值,即标注位置是 xy 位置向右移动 30,向下移动30;
- # arrowprops 是对图中箭头类型和箭头弧度的设置,需要用 dict 形式传入。
-
- plt.text(0.5, -0.25, "sin(np.pi) = 0", fontdict={'size': 18, 'color': 'r'})
- plt.show()
结果:
在matplotlib中,整个图表为一个figure对象。其实对于每一个弹出的小窗口就是一个Figure对象。下面演示如何在一个代码中创建多个Figure对象,也就是多个小窗口。
- def test2():
- x = np.linspace(-1, 1, 50)
- y1 = x ** 2
- y2 = x * 2
- # 这个是第一个figure对象,下面的内容都会在第一个figure中显示
- plt.figure()
- plt.plot(x, y1)
-
- # 这里第二个figure对象
- plt.figure()
- plt.plot(x, y2)
- plt.show()
figure参数:
- plt.figure(num = 3,figsize = (10,5)) # 指定新创建的为figure3
- plt.figure("test") # 指定新创建的为test
参考文章:
1、Python--Matlibplot画图功能演示
https://blog.csdn.net/qq_25948717/article/details/82724686
2、Python-matplotlib画图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。