Pandas内置绘图大全
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas内置绘图大全相关的知识,希望对你有一定的参考价值。
参考技术A大家好,我是Peter~
之前写过很多关于Pandas的文章都是介绍如何使用Pandas来处理数据,这的确是它的强项。
其实,Pandas还有一个内置的功能:绘图。你没有看错: Pandas自身就是可以绘图的 。本文详细介绍基于Pandas的快速绘图方法。
下面是常见的参数及解释,详细的请参考官网: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html
本文中主要使用的一份模拟数据:根据numpy库模拟生成的
绘制最基础的图形:折线图
就是上图右上角的col1、col2、col3
当然,也可以是堆叠的形式:
为了绘制饼图,模拟了一份新数据:
同样的,再绘制一份数据:
参数是同样适用的:
为了绘制不同的蜂窝图,模拟了一份新数据:
使用 Series.plot.kde() 和 DataFrame.plot.kde() 可以画出密度图:
1、针对DataFrame的密度图
2、针对Series的密度图
绘制子图主要的参数:
开启共享y轴的参数:
为了绘制平行分类图,我们导入著名的iris数据集:
其中: 属性Name就是我们进行分类的数据字段
我们总结下Pandas内置绘图的特点:
pandas之绘图
pandas绘图
pandas绘图是基于matplotlib的上层封装 正常工作一般先用pandas绘图,再辅以matplotlib修改组件
Pandas绘图的优势:
- 代码简洁
- 针对pandas数据结构专门优化过(series/DataFrame) 劣势:
- pandas绘图自定义程度较差
- matplotlib自定义程度高
import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams[‘font.family‘] = [‘Artial Unicode MS‘,‘Microsoft Yahei‘, ‘SimHei‘, ‘sans-serif‘] # 解决中文乱码问题 # plt.rcParams[‘axes.unicode_minus‘] = False # simhei黑体字 符号乱码 解决 # plt.style.use(‘seaborn‘) # 改变图像风格
# series绘图 ts = pd.Series(np.random.randn(1000),index=pd.date_range(‘1/1/2000‘,periods=1000)) ts.plot(figsize=(18,8),title=‘股票价格‘)
# DataFrame绘图 df = pd.DataFrame( np.random.randn(10,4).cumsum(0), columns=[‘A‘,‘B‘,‘C‘,‘D‘], index=np.arange(0,100,10) ) df.plot()
pandas绘图常见的参数
- 核密度估计图比直方图的优势
- 线条表现数据分布,可以对比多组数据的分布情况
- 分布情况平滑,更容易观看
df.plot() df.plot(kind=‘bar‘) # 柱状图 df.plot(kind=‘hist‘, alpha=0.5) df.plot(kind=‘kde‘,figsize=(18,5),alpha=0.5,grid=True,legend=True) # 核密度估计 # 修改网格粗细和透明度 plt.grid(linewidth=0.2, alpha=0.5)
matplotlib子图和pandas结合
fig,axis = plt.subplots(2,1) # 2,1 2行1列 df.plot.bar(ax=axis[0],alpha=0.5) df.plot.line(ax=axis[1],color=‘red‘,alpha=0.5)
堆积柱状图
df = pd.DataFrame( np.random.rand(6,4), index=[‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘], columns=pd.Index([‘A‘,‘B‘,‘C‘,‘D‘],name=‘Genus‘) ) df df.plot.bar(stacked=True,alpha=0.5,legend=False)
s = pd.Series([1,1,2,3,4,4,4,4,5,6,6]) s.value_counts().plot.bar() s.value_counts().plot.barh()
以上是关于Pandas内置绘图大全的主要内容,如果未能解决你的问题,请参考以下文章