pandas 知识点补充:绘图plot

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas 知识点补充:绘图plot相关的知识,希望对你有一定的参考价值。

1 plot介绍

        使用DataFrame的plot方法绘制图像会按照数据的每一列绘制一条曲线,默认按照列columns的名称在适当的位置展示图例,比matplotlib绘制节省时间,且DataFrame格式的数据更规范,方便向量化及计算。

DataFrame.plot(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, 
                fontsize=None, colormap=None, position=0.5, table=False, yerr=None, 
                xerr=None, stacked=True/False, sort_columns=False, 
                secondary_y=False, mark_right=True, **kwds)

 2 主要参数

kind 

绘图类型‘line’折线图
‘bar’

条形图。

stacked为True时为堆叠的柱状图

‘barh’ 横向条形图
‘hist’直方图(数值频率分布)
‘box’ 箱型图
‘kde’

Kernel Density Estimation plot

密度图,主要对柱状图添加Kernel 概率密度线

‘area’ 

与x轴所围区域图(面积图)。

Stacked=True时,每列必须全部为正或负值,

stacked=False时,对数据没有要求

‘pie’

饼图。

数值必须为正值,需指定Y轴或者subplots=True

‘scatter’ 散点图。需指定X轴Y轴
‘hexbin’ 蜂巢图。需指定X轴Y轴

subplots 

 boolean

default False

是否对列分别作子图

grid

图片是否有网格

legend

子图的图例 (默认为True)

logx 

设置x轴刻度是否取对数

logy 

设置y轴刻度是否取对数

loglog

同时设置x,y轴刻度是否取对数

xlim&ylim

设置坐标轴的范围。

数值(最小值)或元组(区间范围)

fontsize

设置轴刻度的字体大小

colormap

设置图的区域颜色

colorbar

柱子颜色

secondary_y 

 boolean or sequence, default False 

设置第二个y轴(右辅助y轴)

 2.1 其他需要注意的地方

2.1.1 设置X、Y轴名称

ax.set_ylabel('yyy')

ax.set_xlabel('xxx')

2.1.2 plt.legend(loc='best')

  • loc:图列位置

2.1.3每种绘图类型都有相对应的方法。

比如, df.plot(kind='line')与df.plot.line()等价

2.1.4 画图步骤

1)首先定义画图的画布:fig = plt.figure( )

2)然后定义子图ax ,使用 ax= fig.add_subplot( 行,列,位置标)

3)用 ax.plot( )函数或者 df.plot(ax = ax)

4)结尾加plt.show()

3 画图举例

3.0 直接做图

每一列一条线

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
#     ts = ts.cumsum()
    df =pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) 
    df = df.cumsum()

    df.plot()
    #每一列一条线

 

 

3.1 主副轴

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))

    df =pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) 
    df = df.cumsum()
    #A图用左Y轴标注,B图用右Y轴标注,二者共用一个X轴
    df.A.plot()#对A列作图,同理可对行做图
    df.B.plot(secondary_y=True, style='g')#设置第二个y轴(右y轴)

 3.1.1 主副轴分别设置标签位置

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))

    df =pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) 
    df = df.cumsum()

    ax = df.plot(secondary_y=['A', 'B'])
# 定义column A B使用右Y轴。

    ax.set_ylabel('CD scale')
    ax.right_ax.set_ylabel('AB scale')
    ax.legend(loc='upper left') #设置图例的位置
    ax.right_ax.legend(loc='upper right')
#分别设置主副轴的位置和标题

    plt.show()

 

以上是关于pandas 知识点补充:绘图plot的主要内容,如果未能解决你的问题,请参考以下文章

pandas.DataFarme内置的绘图功能参数说明

pandas中的绘图函数

Pandas - 绘图操作

Pandas---10.DataFrame绘图

pandas 饼图 plot 删除楔形上的标签文本

pandas之折线图(plot)