1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python:matplotlib.pyplot绘制散点图(基础一)

python:matplotlib.pyplot绘制散点图(基础一)

时间:2023-06-15 11:37:59

相关推荐

python:matplotlib.pyplot绘制散点图(基础一)

1.先读取excel文件,使用scatter()函数绘制简单的散点图,此时很多变量都为默认值

import matplotlib.pyplot as pltimport pandas as pd# 读取excel文件file_data = pd.read_excel('data.xls')# 创建画布fig = plt.figure(figsize=(16, 8))# 定义图标名称,横纵坐标名称plt.xlabel('时间', fontproperties='KaiTi')plt.ylabel('输出应变量', fontproperties='KaiTi')plt.title('时间与输出变量关系图', fontproperties='KaiTi')# 绘制简单的散点图"""x:设置横轴坐标y:设置纵轴坐标"""plt.scatter(x=file_data['时间'], y=file_data['输出应变量'])plt.show()plt.close()

运行结果图

2.对散点图进行美化,可以设置散点图的形状marker(使用了*形状),点的大小s(即根据点对应的数值大小,对点的大小进行调整。在这里,使用for循环对‘输出应变量’一列的数值存入一个名为size的列表中),颜色c(在这里,使用了random随机生成的数字对颜色进行调整)等

import matplotlib.pyplot as pltimport pandas as pdimport numpy as np# 读取excel文件# 读取文件的内容为DataFrame形式file_data = pd.read_excel('data.xls')# 创建画布fig = plt.figure(figsize=(16, 8))# 定义图标名称,横纵坐标名称plt.xlabel('时间', fontproperties='KaiTi')plt.ylabel('输出应变量', fontproperties='KaiTi')plt.title('时间与输出变量关系图', fontproperties='KaiTi')# 如果要根据具体的数值来确定散点图中散点的大小,可将具体数值赋值给scatter中的变量ssize = list()for i in file_data['输出应变量']:size.append(i+100)# 绘制简单的散点图"""x:设置横轴坐标y:设置纵轴坐标s:设置散点图中点的大小c:设置散点图颜色marker:设置散点的形状"""plt.scatter(x=file_data['时间'], y=file_data['输出应变量'], s=size, c=np.random.randint(0, 50, 20), marker='*')plt.show()plt.close()

运行结果图

3.设置图例,默认显示在图的右上角,

方法一,使用label对图例进行设置,在scatter函数中增加label参数,对图例命名,适用于图中只有一类散点图时,此时需要加上plt.legend(),否则图例不能显示

p1 = plt.scatter(x=file_data['时间'], y=file_data['输出应变量'],s=size, c=np.random.randint(0, 50, 20), marker='*', label='line')plt.legend()

方法二,适用于一个图中有多个形状的散点,分别设置不同的图例

p1 = plt.scatter(x=file_data['时间'], y=file_data['输出应变量'], s=size, c=np.random.randint(0, 50, 20),marker='*', label='line1')p2 = plt.scatter(x=file_data['时间'], y=file_data['变量4'], s=size, c=np.random.randint(0, 50, 20),marker='o', label='line2')# 设置图例legendplt.legend((p1, p2), ('line 1', 'line 2'))plt.legend(['line1', 'line2'])# plt.legend()

关于matplotlib.pyplot的更详细用法:/stable/api/_as_gen/matplotlib.pyplot.html

关于matplotlib.legend的更详细用法:

/stable/api/legend_api.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。