0. 简介
python中常用的绘图库除了matplotlib、seaborn之外,数据处理库pandas也能画图,本文就主要介绍如何使用pandas画图。
pandas主要是通过 pandas.DataFrame.plot() 来完成绘图,因此我们先来了解此函数的各个参数,然后通过实例进行演示。
1. pandas.DataFrame.plot() 参数
官方文档
详解
参数:
DataFrame.plot(data, x=None, y=None, kind='line', ax=None, subplots=False,
sharex=None, sharey=False, layout=None,figsize=None,
use_index=True, title=None, grid=None, legend=True,
style=None, logx=False, logy=False, loglog=False,
xticks=None, yticks=None, xlim=None, ylim=None, rot=None,
xerr=None,secondary_y=False, sort_columns=False, include_bool=False, **kwds)
解释:
总体相关参数
Parameters:
data: series或DataFrame格式
x : label or position, default None
y : label or position, default None
kind : str
‘line’ : line plot (default)
‘bar’ : vertical bar plot
‘barh’ : horizontal bar plot
‘hist’ : histogram
‘box’ : boxplot
‘kde’ : Kernel Density Estimation plot
‘density’ : same as ‘kde’
‘area’ : area plot
‘pie’ : pie plot
‘scatter’ : scatter plot
‘hexbin’ : hexbin plot
子图相关参数
ax : matplotlib axes object, default None
subplots : boolean, default False
sharex : boolean, default True if ax is None else False
sharey : boolean, default False
layout : tuple (optional)
图片相关参数
figsize : a tuple (width, height) in inches
use_index : boolean, default True
title : str or list
grid : boolean, default None (matlab style default)
legend :
style : list or dict
x, y轴相关设置
logx : bool or ‘sym’, default False
logy : bool or ‘sym’, default False
loglog : bool or ‘sym’, default False
xticks : sequence
yticks : sequence
xlim : 2-tuple/list
ylim : 2-tuple/list
xlabel: label, optional
ylabel: label, optional
rot : int, default None
fontsize : int, default None
区域设置
colormap : str or matplotlib colormap object, default None
colorbar : boolean, optional
position : float
table : boolean, Series or DataFrame, default False
yerr : DataFrame, Series, array-like, dict and str
xerr : same types as yerr.
stacked : boolean, default False in line and bar plots, and True in area plot.
sort_columns : boolean, default False
secondary_y : boolean or sequence, default False
mark_right : boolean, default True
include_bool: bool, default is False
Returns:axes : matplotlib.AxesSubplot or np.array of them
2. 演示
2.1 各种图
参考pandas 常见绘图总结
test_dict = {'销售量':[1000,2000,5000,2000,4000,3000],'收藏':[1500,2300,3500,2400,1900,3000]}
data = pd.DataFrame(test_dict,index=['一月','二月','三月','四月','五月','六月'])
data
销售量 收藏
一月 1000 1500
二月 2000 2300
三月 5000 3500
四月 2000 2400
五月 4000 1900
六月 3000 3000
2.1.1 折线图
普通折线图以折线的上升或下降来表示统计数量的增减变化的统计图,叫作折线统计图。折线统计图不仅可以表示数量的多少,而且可以反映同一事物在不同时间里的发展变化的情况,虽然它不直接给出精确的数据(当然你也可以加上去),但是能够显示数据的变化趋势,反映事物的变化情况。
data.plot(kind='line')
2.1.2 条形图
条形统计图可以清楚地表明各种数量的多少。 普通条形图:
data.plot(kind='bar')
堆积条形图:
data.plot(kind='bar', stacked=True)
2.1.3 横向条形图
data.plot(kind='barh')
2.1.4 直方图
直方图是数值数据分布的精确图形表示,这是一个连续变量(定量变量)的概率分布的估计
test_dict2 = {'泊松分布':np.random.poisson(50,100),'贝塔分布':np.random.beta(5,1,100)*40}
data2 = pd.DataFrame(test_dict2)
data2
泊松分布 贝塔分布
0 40 38.001607
1 50 36.588124
2 53 36.325921
3 49 37.138868
4 59 38.503662
... ... ...
95 52 21.731441
96 48 37.274649
97 59 35.666431
98 60 30.777406
99 50 24.558308
100 rows × 2 columns
data2.plot(kind='hist', subplots=True, bins=20, sharex=False, layout=(1,2))
2.1.5 箱线图
data.plot(kind='box')
2.1.6 核密度图
data2.plot(kind='kde', subplots=True, grid=True)
2.1.7 饼图
data.plot(kind='pie', subplots=True,figsize=(10, 8),autopct='%.2f%%',radius = 1.2,startangle = 250,legend=False,colormap='viridis')
此处有一些特殊的参数:
figsize
autopct
radius
startangle
colormap
2.1.8 散点图
data.plot(kind='scatter', x=0, y=1)
2.2 x轴ticks方向设置
设置rot=0 ,则将ticks方向设置为水平
data.plot(kind='bar', rot=0)
|