1.先读取excel文件,使用scatter()函数绘制简单的散点图,此时很多变量都为默认值
import matplotlib.pyplot as plt
import 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 plt
import pandas as pd
import 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中的变量s
size = 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')
# 设置图例legend
plt.legend((p1, p2), ('line 1', 'line 2'))
plt.legend(['line1', 'line2'])
# plt.legend()
关于matplotlib.pyplot的更详细用法:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.html
关于matplotlib.legend的更详细用法:
https://matplotlib.org/stable/api/legend_api.html