python数据可视化图表_python数据可视化之pandas基础图表(一)

pandas可以做的不仅仅是加载和转换数据,它还可以可视化数据。比起一大堆的matplotlib代码,使用pandas内置的plot 函数绘图更简洁。

下面通过简单的例子掌握pandas基本的绘图方法。

了解数据

数据源来自kaggle-葡萄酒杂志评论。

import pandas as pd

import matplotlib

import matplotlib.pyplot as plt

# 葡萄酒杂志评论数据

reviews = pd.read_csv("kaggle/winemag-data_first150k.csv", index_col=0)

head = reviews.head(3)

image.png

柱形图

柱形图可以说是最简单的数据可视化。通过柱子来表现数据的高度,进而比较不同数据之间的差异,一眼可以看到数据量的大小对比。在本例子中展现top10葡萄酒产量的省份对比

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

产量对比.png

从上图中可以看出California的产量远远高于世界其他省份的产量,我们可能会问,California葡萄酒占总葡萄酒的百分比是多少?这个柱形图告诉我们绝对值,但知道相对比例更有用。

(reviews['province'].value_counts().head(10)/len(reviews)).plot.bar()

占比.png

从上图可以得知California出产的葡萄酒几乎占葡萄酒杂志评论的三分之一。

柱形图非常灵活:高度可以表示任何东西,只要它是一个数字。每个栏可以代表任何东西,只要它是一个分类。

上例的中省份分类是一个定类数据(没有内在固有大小或高低顺序),还有一种分类数据是定序数据,它相对于定类数据类型来说存在一种程度有序现象,例如下例中葡萄酒不同评分的评论数量。

reviews['points'].value_counts().sort_index().plot.bar()

不同评分的评论数.png

从上图可看到,每个葡萄酒的总分都在80到100分之间。有20个分数值类别,柱状图刚好可以完全展示这些值。如果评分是0-100呢?恐怕无法完全展示每个类别的情况,这时,我们需要使用折线图。

折线图

reviews['points'].value_counts().sort_index().plot.line()

不同评分的评论数趋势.png

面积图

当只绘制一个变量时,面积图和折线图之间的区别主要是可视化的。在这种情况下,它们可以互换使用。

reviews['points'].value_counts().sort_index().plot.area()

面积图.png

直方图

直方图是用一系列等宽不等高的长方形来绘制,宽度表示数据的范围间隔,高度表示频数或者频率。

查看葡萄酒价格分布

reviews['price'].plot.hist()

价格分布1.png

从上图看价格主要分布在0~200,由于高位价格偏差,导致价格区间过大,看不出问题。

len(reviews[reviews['price'] > 200])/len(reviews)

通过计算,发现价格在200以上的占比只有 0.005,可以忽略,处理一下数据偏差,重新查看price<200时的价格数量分布

reviews[reviews['price'] < 200]['price'].plot.hist()

价格分布2.png

总结

柱形图

折线图

面积图

直方图

df.plot.bar()

df.plot.line()

df.plot.area()

df.plot.hist()

适合展示少量的定类数据。

适用于有序数据和区间数据

同折线图

适合展示区间数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值