我们在matplotlib模块学习中,发现有常用的反映数据变化的折线图,对比数据类型差异的柱状图和反应数据频率分布情况的直方图。
往期内容速看
其实在数据统计图表中,有一种图表是散列点分布在坐标中,反应数据随着自变量变化的趋势。
本期,我们将详细学习matplotlib 绘制散点图相关属性的学习,let's go~
本次案例我们将分析某产品不同定价销售额分布情况
案例需要准备两组数据x和y轴,其中x,y轴的数据量要保持一致
x_value = np.random.randint(50,100,50) y_value = np.random.randint(500,1000,50)
绘制散点
import matplotlib.pyplot as plt import numpy as np plt.rcParams["font.sans-serif"]=['SimHei'] plt.rcParams["axes.unicode_minus"]=False x_value = np.random.randint(50,100,50) y_value = np.random.randint(500,1000,50) plt.scatter(x_value,y_value) plt.title("data analyze") plt.xlabel("销售价格") plt.ylabel("销售额") plt.show()
关键字:s
传入数据类型为list或者数字,默认为20
关键字:c
默认颜色为蓝色
取值范围
关键字:marker
系统默认为'o'小圆圈
取值还可以取:('o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X')
关键字:alpha
取值范围:0~1
关键字: edgecolor
默认为face
取值选项:
我们结合上一节的案例,设置散点大小,散点边框为粉色,散点颜色为#88c999
size = (20*np.random.rand(50))**2 plt.scatter(x_value,y_value,s=area,c="#88c999",edgecolors="pink"
我们在查看散点图时,有时候会借助折线图来辅助分析。我们继续拿第一节的数据来分析。
我们使用np.random.rand()来生成100个随机数据
x_value = 100*np.random.rand(100) y_value = 100*np.random.rand(100)
需要借助我们高中的数学公司如sin\cos函数等(高中数学都还给老师了)
使用pyplot.plot()方法来绘制曲线图
r0 = 80 plt.scatter(x_value,y_value,c="hotpink",edgecolors="blue") the = np.arange(0,np.pi/2, 0.01) plt.plot(r0*np.cos(the),r0*np.sin(the))
我们在观察数据的时候,会同时比较多个类型数据,因此我们可以通过颜色或者散点样式来区分表示
方式一: 使用颜色来区分不同类别时,我们需要再添加新的数据和scatter方法
x_value = 100*np.random.rand(100) y_value = 100*np.random.rand(100) y1_value = 100*np.random.rand(100) plt.scatter(x_value,y_value, c="hotpink",edgecolors="blue",label="A产品") plt.scatter(x_value,y1_value, c="#88c999", edgecolors="y",label="B产品")
方式二:我们可以使用marker来标记不同类型,例如我们使用上一节的案例再添加一个scatter()
r0 = 80 size = (20*np.random.rand(100))**2 r = np.sqrt(x_value**2+y_value**2) area = np.ma.masked_where(r > r0,size) area1 = np.ma.masked_where(r <= r0, size) plt.scatter(x_value,y_value,s=area,c="hotpink",edgecolors="blue",label="A产品") plt.scatter(x_value, y_value, s=area1, c="red", edgecolors="y",marker="^",label="B产品") the = np.arange(0,np.pi/2, 0.01) plt.plot(r0*np.cos(the),r0*np.sin(the))
在散点图表中,我们为了对每个点颜色深浅进行表示,我们可以借助cmap颜色条来进行添加
当要显示颜色列表时,我们需要调用pyplot.colorbar()
例如,我们对散点图添加一个红色系的颜色列表
size = (20*np.random.rand(100))**2 color = np.random.randint(0,100,100) plt.scatter(x_value,y_value, s=size, c=color,label="A产品",cmap="afmhot_r") plt.colorbar()
散点图都是由一个一个坐标点组成的,当这些点具有一定规律时,我们可以使用散点图来绘制曲线。
我们使用scatter()绘制一个2次方的幂函数
x_value = list(range(1, 100)) y_value = [x ** 2 for x in x_value] plt.scatter(x_value,y_value,c=y_value,cmap="hot_r",edgecolors="none",s=50) plt.show()
本期,我们对matplotlib.pyplot 绘制散点图scatter方法及相关属性进行详细的学习。对于暂时没有找到规律的数据来说,使用散点图可以快速发现数据的分布情况