matplotlib.pyplot库功能使用示例,Python绘制折线图、散点图...
- 1、简单折线图示例
- 2、设置中文字符,解决乱码问题
- 3、添加标记格式
- 4、添加y值标记
- 5、添加图例
- 6、设置字体大小
- 7、设置坐标轴起点数值
- 8、绘制多条折线
- 9、散点图基础示例
matplotlib.pyplot库是Python中一个非常重要的可视化工具,可以用于绘制各种图表。本文给出了图表绘制的各种示例
1、简单折线图示例
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图
plt.plot(x, y)
# 添加标题和坐标轴标签
plt.title("Square Curve")
plt.xlabel("x-axis")
plt.ylabel("y-axis")
# 显示图形
plt.show()
代码中首先导入了matplotlib.pyplot库和numpy库。生成了一些数据并使用plt.plot()函数绘制了折线图,同时使用plt.title()、plt.xlabel()和plt.ylabel() 函数为图形添加标题和坐标轴标签。最后调用plt.show()函数显示图形。
2、设置中文字符,解决乱码问题
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图
plt.plot(x, y)
# 添加标题和坐标轴标签
plt.title("平方曲线")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 显示图形
plt.show()
第一行设置字体为“SimHei”,即黑体。第二行设置不使用负号作为轴标志,避免出现乱码。
3、添加标记格式
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图和散点图
plt.plot(x, y, '-o')
# 添加标题和坐标轴标签
plt.title("平方曲线")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 显示图形
plt.show()
在plot()函数中使用了’-o’参数,其中’-'表示绘制线条,'o’表示绘制圆点。除了圆点外还有其他的数据标记符号,主要如下:
. 小圆点 o 圆圈 v 倒三角 ^ 正三角 < 左三角 > 右三角 * 星号 + 加号 x 叉号
4、添加y值标记
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图和散点图
plt.plot(x, y, '-o')
# 添加标题和坐标轴标签
plt.title("平方曲线")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 在每个点的位置上添加文本标注
for i, j in zip(x, y):
plt.text(i, j, str(j), ha='center', va='bottom')
# 显示图形
plt.show()
在这个示例中,我们使用了text()函数来添加文本标注。我们通过循环遍历所有数据点,并在每个点的位置上添加对应的y值文本标注。其中,text()函数的参数中x指的是文本标注的x坐标,y指的是文本标注的y坐标,str(j)则是将y值转换为字符串形式,便于标注。ha和va参数指定文本标注的水平和垂直对齐方式,这里分别设置为’center’和’bottom’,表示水平居中对齐和垂直向下对齐。
如果标注有遮挡,可调整 i 、 j 坐标
plt.text(i, j+2, str(j), ha='center', va='bottom')
5、添加图例
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图和散点图,并添加图例
plt.plot(x, y, '-o', label='平方曲线')
plt.legend(loc='upper left')
# 添加标题和坐标轴标签
plt.title("平方曲线")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 在每个点的位置上添加文本标注
for i, j in zip(x, y):
plt.text(i, j, str(j), ha='center', va='bottom')
# 显示图形
plt.show()
使用了legend()函数来添加图例。首先在plot()函数中加入label参数,并将其设置为’平方曲线’,这样就会在图例中显示出这个标签。接着调用legend()函数并指定loc参数为’upper left’,表示将图例显示在左上角。最后在循环中添加文本标注,并绘制出图形。
6、设置字体大小
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题,并设置字体大小
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.size'] = 12
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图和散点图,并添加图例
plt.plot(x, y, '-o', label='平方曲线')
plt.legend(loc='upper left')
# 添加标题和坐标轴标签
plt.title("平方曲线")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 在每个点的位置上添加文本标注,并设置字体大小
for i, j in zip(x, y):
plt.text(i, j, str(j), ha='center', va='bottom', fontsize=10)
# 显示图形
plt.show()
使用了rcParams来设置字体大小。首先将字体大小设置为12,这样所有的文字都会按照这个大小进行显示。在循环中添加文本标注时,同时将字体大小设置为10,以便让文本更加清晰可读。
7、设置坐标轴起点数值
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题,并设置字体大小
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.size'] = 12
# 生成数据
x = np.arange(0, 10, 1)
y = x**2
# 绘制折线图和散点图,并添加图例
plt.plot(x, y, '-o', label='平方曲线')
plt.legend(loc='upper left')
# 添加标题和坐标轴标签
plt.title("平方曲线")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 在每个点的位置上添加文本标注,并设置字体大小
for i, j in zip(x, y):
plt.text(i, j, str(j), ha='center', va='bottom', fontsize=10)
# 设置x和y轴的范围
plt.xlim([0,10])
plt.ylim([0,100])
# 显示图形
plt.show()
在这个示例中,在调用plot()函数时并未指定x和y轴的范围,因此它们会自动适应所绘制的图形。为了将x轴的起点数值设置为0,可以调用xlim()函数并传入一个长度为2的列表,其中第一个元素表示x轴起点,第二个元素表示x轴终点。同样的,为了将y轴的起点数值设置为0,可以调用ylim()函数并传入一个长度为2的列表,其中第一个元素表示y轴起点,第二个元素表示y轴终点。最后,绘制出图形并展示出来。
8、绘制多条折线
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题,并设置字体大小
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.size'] = 12
# 生成数据
x = np.arange(0, 10, 1)
# 绘制多条折线,并添加图例
plt.plot(x, x**2, '-o', label='平方曲线', color='red')
plt.plot(x, x**3, '-^', label='立方曲线', color='green')
plt.plot(x, x**4, '-s', label='四次方曲线', color='blue')
plt.legend(loc='upper left')
# 添加标题和坐标轴标签
plt.title("多个幂函数")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 显示图形
plt.show()
要修改每条线的颜色,可以在plt.plot()函数中设置color参数。该参数可以是预定义的颜色名称(如’red’、‘green’),也可以是RGB值、十六进制颜色代码或HTML颜色名称等。
9、散点图基础示例
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题,并设置字体大小
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.size'] = 12
# 生成随机数据
x = np.random.randn(50)
y = np.random.randn(50)
# 绘制散点图
plt.scatter(x, y)
# 添加标题和坐标轴标签
plt.title('散点图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
# 显示图形
plt.show()
matplotlib.pyplot库可以使用scatter()函数绘制散点图。其基本语法如下:
plt.scatter(x, y, s=None, c=None, marker=None, cmap=None)
其中,参数含义如下:
x和y:表示数据点的横纵坐标。
s:表示散点的大小(可选)。
c:表示散点的颜色(可选)。
marker:表示散点的形状(可选)。
cmap:表示散点颜色的映射(可选)。
上述代码将生成50个随机数据点的散点图,其中scatter()函数默认散点大小为20,颜色为蓝色。