数据分析基础笔记 - 数据可视化
一、可视化图表类型
趋势、分布、构成、比较和联系
- 趋势
数据是如何随着时间而发生变化,通过折线图或柱状图进行展示 - 分布
当关心数据的分布规律时,常会用散点图来展示不同分布特征,通过考察散点图中点的分布情况,来总结数据的分布模式或判断两个数据之间是否存在某种关联 - 构成
用于表示数据中每个部分占总体的比例,一般情况下用饼图展示 - 比较
用于数据在某维度上的比较,通常会通过簇形柱状图和并列子图来反映对比数据间的关系 - 联系
主要用于衡量两种维度数据之间的关系,即观察其中一类数据的大小是否随着另一类数据的大小有规律地变化。通常,这两类数据的统计单位不一致,且数值相差悬殊。一般情况下,我们会使用双y轴叠加图来展示
matplotlib
- matplotlib图像的构成
matplotlib图表的组成元素包括:画布(Figure)、坐标图形(Axes)、图像标题(Title)等 - 安装和导入matplotlib模块
pip install matplotlib
导入:import matplotlib.pyplot as plt - 设置matplotlib字体
对plt.rcParams["font.sans-serif"]进行赋值,windows设置为SimHei,MacOS设置为Arial Unicode MS - 创建画布
使用figure()函数可以创建画布
figure()函数的常用参数有(均为非必选参数):- figsize:指定figure的宽和高,单位为英寸;
- facecolor:背景颜色
- edgecolor:边框颜色
- frameon:是否显示边框
每当完成绘图后,如果要展现绘图结果,需要使用plt.show()函数
- 折线图(plot):
plt.plot(),将必选参数x轴和y轴对应的值依次传入到函数,x轴是时间类型的数据,y轴是各时间点所对应的数据- 设置颜色: color参数
- 设置折线图标记: marker参数
- 添加并显示图例说明:label参数和plt.legend()函数
- 添加坐标轴标题和添加图像标题:plt.xlabel()、plt.ylabel()函数和plt.title()函数
- 柱状图(bar):
plt.bar(),需要依次传入两个必选参数:x轴对应的值和y轴对应的值- width和color,分别用于设置柱状图中柱子的宽度和颜色
- 散点图:
plt.scatter(),将x轴对应的值和y轴对应的值依次传入函数中即可- color,用来设置散点的颜色
- 双y轴叠加图:只需在绘制两个图像的代码中间
plt.twinx()函数,表示在同一个x轴上,添加新的y轴进行绘图即可
plt.bar(data["month"],data["exposure"])
# 使用plt.twinx()函数,添加另一个y轴
plt.twinx()
# 使用plt.plot()函数
# 以data["month"]为x轴的值,data["CVR"]为y轴的值
# 绘制转化率的折线图
plt.plot(data["month"],data["CVR"])
- 调整图例位置:在调用
plt.legend()函数时,将图中的位置作为字符串赋值给loc参数 plot.grid()添加网格
-
百分比堆积柱状图
- plot.bar()函数的参数stacked设置为True,就可以绘制堆积柱状图
-
簇形柱状图
- 只需要对一个DataFrame对象,使用pandas模块中的plot.bar()函数即可
- 指定x轴和y轴的具体操作是:在调用plot.bar()函数时,把DataFrame的列索引(columns)或包含列索引(columns)的列表,依次传入该函数中。
data.plot.bar("month",["first_floor","second_floor","third_floor"])
-
并列子图
- 通过plt.subplot()函数
- 三个参数:子图的行数,子图的列数,子图的序号
- 使用plt.xticks()函数,将度数作为整数赋值给rotation参数,传入该函数中,来旋转x轴的刻度
- 使用plt.tight_layout()函数,来调整子图的布局,避免重叠
- 如果要在子图上使用pandas模块绘图,则需要在绘图的函数中,传入ax=plt.gca(),ax参数用来指定坐标图形(axes)对象,而plt.gca()则是用来返回当前状态下的坐标图形(axes)对象
-
直方图
- 将统计值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值
plot.hist()- 参考
-
饼图
例子:已知某商店出售 3 种水果,当天的营业额分别为苹果:100,香蕉:200,葡萄:250,请绘制饼图,显示三种水果的占比。
import matplotlib.pyplot as plt
labels = ['Apple', 'Banana', 'Grape']
sizes = [100,200,250]
plt.pie(sizes, labels=labels, autopct = '%1.1f%%');
其中autopct = '%1.1f%%' 小数点前面的数字对产生的结果没有任何影响,小数点后面的数字表示保留小数点几位

浙公网安备 33010602011771号