赞
踩
Pandas 自带的可视化功能通过 plot 方法提供了一种便捷的方式来创建各种类型的图表。plot 方法是基于 Matplotlib 库构建的,因此它继承了 Matplotlib 的强大功能和灵活性,同时简化了绘图过程,使得用户无需深入了解 Matplotlib 的所有细节即可快速创建图表。
格式:
Dataframe[条件].聚合.plot.图形函数
格式:
Dataframe[条件].聚合.plot(kind = '图表类型',....其他参数)
这两种方法除语法外没有区别,建议使用第一种写法
plot 方法支持多种图表类型,包括:
导入数据:
import pandas as pd
import pandas as ps
wine = pd.read_csv('/export/data/pandas_data/winemag-data_first150k.csv',index_col=0)
wine
数据样式:
产看数据基本信息
# 查看数据基本信息
wine.info()
柱状图主要适用于以下类型的数据:
分类数据:柱状图最常用于展示分类数据。
分类数据是按照某种属性或特征将数据分为不同的类别或组。例如,人口统计中的性别、职业、教育程度等,或者产品销售数据中的不同产品类型。柱状图通过柱子的高度来表示每个类别的频数或占比,使得不同类别之间的数据对比一目了然。
离散数值数据:除了分类数据,柱状图也可以用于展示离散的数值数据,尤其是当这些数值代表不同的类别或组时。
例如,展示不同年龄段人群的平均收入,或者不同月份的销售额。
时间序列数据(按时间分类):虽然线图通常是时间序列数据的首选可视化方式,但在某些情况下,如果时间序列数据是按固定时间间隔(如月份、季度或年份)收集的,并且主要关注每个时间点的数值而非趋势变化,那么柱状图也是一个可行的选择。
例如,展示一年中各个月份的销售数据。
排序数据:当需要对分类数据进行排序,并通过可视化来强调这种排序时,柱状图也很适用。
例如,按销售额从高到低排序的产品类别。
需要注意的是,柱状图不适合用于展示连续变化的数值数据或复杂的趋势关系,因为这可能导致图形过于拥挤,难以解读。在这种情况下,线图或散点图可能更为合适。
注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容
# 展示各省红酒种类排名前10的柱状图,figsize为图表大小,fontsize 为字体大小,color代表柱体颜色
wine['province'].value_counts().head(10).plot.bar(figsize=(10,8),fontsize = 20,color=['r','g','b'])
图表展示:
折线图(Line Chart)主要适用于展示随时间或其他连续变量变化的数据趋势。以下是折线图适用的数据类型:
时间序列数据:折线图最常用于展示时间序列数据,即数据随时间变化的趋势。例如,股票价格随日期的变化、气温随季节的变化、销售额随月份的变化等。通过连接不同时间点的数据点,折线图可以清晰地揭示数据随时间的变化规律,帮助用户识别趋势、周期性变化或异常值。
连续数值数据:除了时间序列数据,折线图也适用于展示其他连续变量之间的数值关系。只要数据点可以按某种顺序(如大小、等级)排列,就可以使用折线图来表示。这种顺序不必是时间,但数据点之间应该存在某种逻辑上的连续性。
多组数据的对比:当需要同时展示多组数据随时间或其他连续变量的变化趋势时,折线图非常有用。通过不同颜色的线条或标记,可以区分不同的数据系列,从而比较它们之间的相似性和差异性。
需要注意的是,折线图不适用于展示分类数据或离散数值数据,因为这些数据类型通常更适合使用柱状图或饼图等图表类型。此外,如果数据点过多或变化过于复杂,折线图可能会变得难以解读,此时可能需要考虑使用其他可视化方法或对数据进行简化处理。
注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容
# 统计各分数段红酒数量,grid=True)表示显示网格
wine['points'].value_counts().sort_index().plot.line(figsize=(13,8), color='gray',fontsize = 20,grid=True)
图表展示:
面积图是在折线图的基础上,对折线以下的区域进行颜色填充,用于在连续间隔或时间跨度上展示数值。它主要强调数量与时间或其他连续变量的关系,并特别适用于表示趋势和对比关系。因此,面积图主要适用于以下类型的数据:
注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容
import matplotlib as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
wine['points'].value_counts().sort_index().plot.area(figsize=(13,8), color='gray',fontsize = 20,title = '各分数段红酒数量面积图')
图表展示:
直方图主要适用于展示连续型变量的分布情况。这类数据通常具有无限多个可能的取值,且取值之间可以连续变化,如人的身高、体重、考试成绩等。通过直方图,我们可以清晰地看到数据的集中趋势、分散程度以及可能存在的异常值。
直方图的基本构造是将连续变量划分为若干组(通常是等宽的),然后统计每组的频数或频率,并以矩形的面积来表示。矩形的宽度表示组距,高度表示频数或频率。这样,整个直方图就展示了数据的分布情况。
在实际应用中,直方图常用于以下几个场景:
# 筛选价格 小于 150的, 然后进行: 直方图绘制,bins为划分5个区间
wine[wine['price'] < 150]['price'].plot.hist(bins=10,figsize=(13,8), color='gray',fontsize = 20,title = '价格小于150的红酒数量直方图')
图表展示:
饼图(Pie Chart)主要适用于展示分类数据的占比情况。具体来说,饼图通过将一个完整的圆饼按照各部分所占的比例来划分,每个部分用不同的颜色或纹理表示,从而直观地展示各类别在总体中所占的比例。
饼图适用于以下类型的数据:
分类数据:饼图最适合用于展示分类数据的占比。例如,展示不同产品类型的销售占比、不同部门的员工人数占比、不同地区的客户数量占比等。通过饼图,可以清晰地看到各类别在总体中的相对大小。
百分比数据:当需要展示各类别所占的百分比时,饼图也是一个很好的选择。通过饼图,可以直观地比较不同类别之间的比例关系,从而更容易地识别出占比最大或最小的类别。
需要注意的是,当饼图中的类别过多时,可能会导致饼图变得拥挤且难以解读。在这种情况下,可以考虑使用其他类型的图表(如柱状图或条形图)来展示数据。此外,饼图只展示了各类别的占比,而不能展示数量的具体值,因此在需要展示具体数值时,可能需要结合其他图表或文字说明进行补充。
# 展示各省红酒种类排名前10的饼图
wine['province'].value_counts().head(10).plot.pie(figsize=(10,8),fontsize = 20)
图表展示:
散点图主要适用于显示和比较数值型数据,尤其是当需要观察两个变量之间的关系时。例如,在科学数据、统计数据和工程数据的分析中,散点图常被用来判断数据是否倾向于使用聚类来做分群,或者是否倾向于使用线性回归来做线性分析。
在散点图中,每个数据点代表两个变量的一个观测值,横轴和纵轴分别代表两个不同的变量。通过观察数据点在图上的分布模式,可以判断这两个变量之间是否存在某种关联,如正相关、负相关或无关等。此外,散点图还能展示数据的疏密程度和变化趋势,从而揭示两个连续变量之间的数量关系。
当有两个变量,且其中一个为分类变量时,散点图可以通过改变点的形状或颜色来区分不同的类别,从而揭示这些变量之间的关系。对于所有的变量都为连续性变量的情况,也可以绘制高维散点图进行分析。
需要注意的是,散点图主要用于显示变量之间的关系和趋势,而不是提供精确的数值。因此,在解读散点图时,应结合具体的数据背景和上下文进行理解。
总的来说,散点图适用于分析两个或多个数值型变量之间的关系,尤其在需要观察数据分布和趋势的情况下。
# 绘制评分和价格的散点分布图(随机取100样本绘制)
wine.sample(100).plot.scatter(x ='price',y= 'points' ,figsize=(15,6),fontsize=20)
图表展示:
蜂巢图适用于展示连续型变量的二维分布。这种图表通过将二维平面划分为一系列六边形格子(类似于蜂巢的结构),并统计每个格子内的数据点数量,来揭示数据的分布特征。
蜂巢图尤其适用于以下情况:
需要注意的是,虽然蜂巢图能够揭示数据的分布趋势和密度,但它可能无法准确地表示单个数据点的具体位置。因此,在需要精确了解每个数据点位置的情况下,可能需要结合其他图表类型(如散点图)进行综合分析。
总的来说,蜂巢图适用于展示连续型变量的二维分布,特别是当数据量较大或需要观察数据密度时。
# 4. 处理X轴坐标缺失, 属于Bug(新版本已解决), 可以通过调用 matplotlibde api添加x坐标
import matplotlib.pyplot as plt
fig, a1 = plt.subplots(figsize = (12, 8))
# 绘制评分和价格的蜂巢图,gridsize 为设置蜂巢的大小
wine[wine['price']<100].plot.hexbin(x ='price',y= 'points' ,figsize=(15,6),fontsize=20,gridsize = 20, ax=a1)
# 增加x轴刻度
a1.set_xticks([0, 20, 40, 60, 80, 100])
plt.show()
图表展示:
堆叠图是一种特殊的图表类型,它通过将多个系列的数据在同个类目轴上(同一X轴位置)进行叠加显示,以展示多系列数据的和或各个数据系列的分量。堆叠图特别适用于以下类型的数据:
需要注意的是,堆叠图并不适用于所有数据场景。例如,当需要比较各个数据点的绝对值时,堆叠图可能不是最佳选择,因为堆叠会导致数据点的实际值变得不那么直观。此外,对于分类数据的比较,如果更关注各个类别的独立表现而非其累加效果,使用其他类型的图表(如柱状图或饼图)可能更为合适。
# 根据葡萄酒种类分组, 找到最常见的五种葡萄酒 # 1. 找到 种类最多的 五种酒 的 名字. top_5_variety = wine['variety'].value_counts().head().index.to_list() top_5_variety # 2. 从数据中取出最常见的五种葡萄酒. top_5_wine = wine[wine.variety.isin(top_5_variety)] top_5_wine # 3. 透视表计数. wine_counts = top_5_wine.pivot_table(index='points', columns='variety', values='country', aggfunc='count') wine_counts # 4. 修改列名, 做不做都行. # wine_counts.columns = ['Bordeaux-style Red Blend', 'Cabernet Sauvignon', 'Chardonnay','Pinot Noir', 'Red Blend'] # 5. 可视化. wine_counts.plot.bar(stacked=True, figsize=(16, 8)) # 堆叠图
图表展示:
面积堆叠图(Area Stacked Chart)适合展示具有多个分类或变量,并且需要表现这些分类或变量在总体中的累积量或占比情况的数据。具体来说,它适用于以下几种类型的数据:
需要注意的是,当分类或变量的数量过多时,面积堆叠图可能会变得拥挤和难以解读。因此,在选择使用面积堆叠图时,需要确保分类或变量的数量适中,以保证图表的清晰度和可读性。
wine_counts.plot.area(figsize=(16, 8))
图表展示:
seaborn可视化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。