Pandas数据可视化

pandas库是Python数据分析的核心库 它不仅可以加载和转换数据,还可以做更多的事情:它还可以可视化 pandas绘图API简单易用,是pandas流行的重要原因之一

Pandas 单变量可视化

单变量可视化, 包括条形图、折线图、直方图、饼图等

数据使用葡萄酒评论数据集,来自葡萄酒爱好者杂志,包含10个字段,150929行,每一行代表一款葡萄酒

加载数据

条形图是最简单最常用的可视化图表 在下面的案例中,将所有的葡萄酒品牌按照产区分类,看看哪个产区的葡萄酒品种多:

 先将plot需要的参数打包成一个字典,然后在使用**解包(防止传进去的成为一个参数)

上面的图表说明加利福尼亚生产的葡萄酒比其他省都多

 也可以折算成比例, 计算加利福尼亚葡萄酒占总数的百分比 :

          

条形图(柱状图)非常灵活: 高度可以代表任何东西,只要它是数字即可 每个条形可以代表任何东西,只要它是一个类别即可。

也可以用来展示《葡萄酒杂志》(Wine Magazine)给出的评分数量的分布情况: 

 

如果要绘制的数据不是类别值,而是连续值比较适合使用折线图 :

柱状图和折线图区别 柱状图:简单直观,很容易根据柱子的长短看出值的大小,易于比较各组数据之间的差别

折线图: 易于比较各组数据之间的差别; 能比较多组数据在同一个维度上的趋势; 每张图上不适合展示太多折线 

面积图就是在折线图的基础上,把折线下面的面积填充颜色 :

 

直方图 

直方图看起来很像条形图, 直方图是一种特殊的条形图,它可以将数据分成均匀的间隔,并用条形图显示每个间隔中有多少行, 直方图柱子的宽度代表了分组的间距,柱状图柱子宽度没有意义

直方图缺点:将数据分成均匀的间隔区间,所以它们对歪斜的数据的处理不是很好:

 

在第一个直方图中,将价格>200的葡萄酒排除了。

在第二个直方图中,没有对价格做任何处理,由于有个别品种的酒价格极高,导致刻度范围变大,导致直方图的价格分布发生变化 。

数据倾斜: 当数据在某个维度上分布不均匀,称为数据倾斜

  1. 一共15万条数据,价格高于1500的只有三条
  2. 价格高于500的只有73条数据,说明在价格这个维度上,数据的分布是不均匀的
  3. 直方图适合用来展示没有数据倾斜的数据分布情况,不适合展示数据倾斜的数据

饼图 

饼图也是一种常见的可视化形式 

reviews['province'].value_counts().head(10).plot.pie()

 

饼图的缺陷:饼图只适合展示少量分类在整体的占比

  1. 如果分类比较多,必然每个分类的面积会比较小,这个时候很难比较两个类别
  2. 如果两个类别在饼图中彼此不相邻,很难进行比较 
  3. 可以使用柱状图图来替换饼图

Pandas 双变量可视化

数据分析时,我们需要找到变量之间的相互关系,比如一个变量的增加是否与另一个变量有关,数据可视化是找到两个变量的关系的最佳方法;

散点图

最简单的两个变量可视化图形是散点图,散点图中的一个点,可以表示两个变量

reviews[reviews['price'] < 100].sample(100).plot.scatter(x='price', y='points’)

调整图形大小,字体大小,由于pandas的绘图功能是对Matplotlib绘图功能的封装,所以很多参数pandas 和 matplotlib都一样

reviews[reviews['price'] < 100].sample(100).plot.scatter(x='price', y='points',figsize=(14,8),fontsize = 16)

修改x轴 y轴标签字体 

 

 

 上图显示了价格和评分之间有一定的相关性:也就是说,价格较高的葡萄酒通常得分更高。

散点图最适合使用相对较小的数据集以及具有大量唯一值的变量。 有几种方法可以处理过度绘图。 一:对数据进行采样 二:hexplot(蜂巢图)

hexplot

hexplot将数据点聚合为六边形,然后根据其内的值为这些六边形上色:

 

上图x轴坐标缺失,属于bug,可以通过调用matplotlib的api添加x坐标:

 

该图中的数据可以和散点图中的数据进行比较,但是hexplot能展示的信息更多

从hexplot中,可以看到《葡萄酒杂志》(Wine Magazine)评论的葡萄酒瓶大多数是87.5分,价格20美元 Hexplot和散点图可以应用于区间变量和/或有序分类变量的组合。 

堆叠图(Stacked plots) 

  • 展示两个变量,除了使用散点图,也可以使用堆叠图
  • 堆叠图是将一个变量绘制在另一个变量顶部的图表
  • 接下来通过堆叠图来展示最常见的五种葡萄酒

 从结果中看出,最受欢迎的葡萄酒是,Chardonnay(霞多丽白葡萄酒),Pinot Noir(黑皮诺),Cabernet Sauvignon(赤霞珠),Red Blend(混酿红葡萄酒) ,Bordeaux-style Red Blend (波尔多风格混合红酒)

从数据中取出最常见的五种葡萄酒:

通过透视表找到每种葡萄酒中,不同评分的数量 :

 

从上面的数据中看出,行列分别表示一个类别变量(评分,葡萄酒类别),行列交叉点表示计数,这类数据很适合用堆叠图展示

 

折线图在双变量可视化时,仍然非常有效 

wine_counts.plot.line()

  • 40
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小森( ﹡ˆoˆ﹡ )

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值