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
•进阶散点图可视化需要大量的数据,网上有很多获取数据的来源,在这里我们可以从GitHub中获取我们想要的数据!!!
•数据来源GitHub:https://github.com/selva86/datasets
matplotlib.pyplot.scatter()专门用于绘制散点图
scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
x,y:输入数据,也可以是list, array_like,shape(n,) .
之前使用matplotlib绘制曲线图直接使用的是plot()方法,其实绘制基础的散点图很简单,只要使用scatter()方法就可以了,其他的设置方式与曲线图的设置方式也是一致的。
import matplotlib.pyplot as plt
import numpy as np
x1 = [1, 2, 3, 4]
y1 = [1, 2, 3, 4] #第一组数据
x2 ...
pyplot.scatter(x, y, marker = '每个点的大小', s = '每个点的面积大小', c = '每个点的颜色', alpha = '每个点显示的颜色深浅,值为0-1, 越接近于1显示越深,默认为None', label='图例')
plt.legend() # 显示图例
2.测试.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
使用pyplot中scatter画散点图 在机器学习任务中,为了更好地训练模型,我们通常会先可视化观察下数据集,比如如果我们的数据集不是线性可分的,那么此时你如果还是使用logistics regression等模型训练出来的效果也不会太好。(ps.多说一句,如果数据集不是线性可分的,一般选择使用神经网络,额。。好吧,绕不开的神经网络,但是三十年河东三十年河西,以后会是什么模型风靡江湖
scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
常用参数:
x,y:数据位置。
s:标记大小,都一样大就填写一个数,想不同点大小不
Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。
Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生成新的图像,在图像中产生新的绘图区域等等。
本文我们主要介绍利用Python中的Matplotlib模块进行几种散点图的画法,包括整张图片只有一种颜色的不分组散点图、整张图片有好几种颜色的不分组散点图、整张图片有好几种颜色的分组散点图等。以上就是今天要讲的内容,本文详细介绍了各种散点图的绘制过程和方法,并用实例给大家演示了具体的实现代码和实现逻辑,希望对大家学习画散点图有帮助。