pandas 常见绘图总结
文章目录
前言
pandas的强大让人毋庸置疑,一个集数据审阅、处理、分析、可视化于一身的工具,非常好用。
大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事。所幸pandas本身就有数据可视化的功能已经可以满足我们大部分的要求了,也就省下了我们很多自己使用 如 Matplotlib 来数据可视化的工作。
一 设置字体和显示中文
Pandas在绘图时,会显示中文为方块,主要原因有二: matplotlib 字体问题,seaborn 字体问题。
没有中文字体,所以我们只要手动添加中文字体的名称就可以了,不过并不是添加我们熟悉的“宋体”或“黑体”这类的名称,而是要添加字体管理器识别出的字体名称,matplotlib自身实现的字体管理器在文件font_manager.py中,自动生成的可用字体信息在保存在文件fontList.cache里,可以搜索这个文件查看对应字体的名称,例如simhei.ttf对应的名称为’SimHei’,simkai.ttf对应的名称为’KaiTi_GB2312’等。因此我们只要把这些名称添加到配置文件中去就可以让matplotlib显示中文。
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['KaiTi']
mpl.rcParams['font.serif'] = ['KaiTi']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
import seaborn as sns
sns.set_style("darkgrid",{
"font.sans-serif":['KaiTi', 'Arial']}) #这是方便seaborn绘图得时候得字体设置
二 pandas 可视化(0.25.3版本)
“有道无术术尚可求,有术无道,止于术。”
这段话在可视化里面的意思就是:首相想清楚你要干嘛,不要一上来就瞎画一堆图,自己觉得NB,但是图都错的再牛逼也只是好看,并没什么作用。
画图前你要思考这几个问题:
- 你为什么要画图?
- 你要画什么图?
- 你这样画图对不对?
1 线形图
普通折线图以折线的上升或下降来表示统计数量的增减变化的统计图,叫作折线统计图。折线统计图不仅可以表示数量的多少,而且可以反映同一事物在不同时间里的发展变化的情况,虽然它不直接给出精确的数据(当然你也可以加上去),但是能够显示数据的变化趋势,反映事物的变化情况。
pandas 有两种绘制线形图的方法,一种是下面这种直接的利用DataFrame.plot()
test_dict = {
'销售量':[1000,2000,5000,2000,4000,3000],'收藏':[1500,2300,3500,2400,1900,3000]}
line = pd.DataFrame(test_dict,index=['一月','二月','三月','四月','五月','六月'