十、 DataFrame 绘图
matplotlib
是一种比较低级的工具,pandas
中有许多利用DataFrame
对象数据组织特点来创建标准图表的高级绘图方法。Series/DataFrame.plot()
:绘制图形。Series.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None,
legend=False, style=None, logx=False, logy=False,loglog=False,xticks=None,yticks=None,
xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, table=False, yerr=None,
xerr=None, label=None, secondary_y=False, **kwds)
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,
table=False, yerr=None, xerr=None, secondary_y=False, sort_columns=False, **kwds)
kind
:绘制的类型。可以为:'line'
、'bar'
、'barh'
(水平的bar
)、'hist'
、'box'
、'kde'
(核密度估计)、'density'
(类似kde
)、'area'
、'pie'
ax
:一个Axes
实例对象。如果为空,则是plt.gca()
的返回值(当前Axes
)figsize
:一个元组,指定图片大小(单位为英寸)use_index
:一个布尔值。如果为True
,则使用index
作为X
轴。title
:图形的标题grid
:一个布尔值。如果为True
,则开启网格legend
:一个布尔值,如果为True
,则放置图例style
:一个列表或者字典,给出了每一列的线型logx
:一个布尔值,如果为True
,则x
轴为对数型logy
:一个布尔值,如果为True
,则y
轴为对数型loglog
:一个布尔值,如果为True
,则x
轴和y
轴都为对数型xticks
:一个序列,用于给出xticks
yticks
:一个序列,用于给出yticks
xlim
:一个二元的元组或者序列,给出x
轴范围ylim
:一个二元的元组或者序列,给出y
轴范围rot
:一个整数,给出了x
轴和y
轴tick
旋转角度(不是弧度)。fontsize
:一个整数,给出了xtick/ytick
的字体大小colormap
:一个字符串或者colormap
对象,给出了colormap
colorbar
:一个布尔值。如果为True
,则绘制colorbar
(只用于scatter
和hexbin
图中)position
:一个浮点数。给出了bar
图中,各bar
的对其位置(0表示bar
的左侧与它的坐标 对其;1表示bar
的右侧与它的坐标对其)layout
:一个元组。给出了(rows,columns)
table
:一个布尔值或者Series/DataFrame
。如果为True
,则将本Series/DataFrame
绘制为一个表格;如果为Series/DataFrame
,则将该参数绘制为表格yerr
:用于绘制Error Bar
xerr
:用于绘制Error Bar
label
:plot
的label
参数secondary_y
:一个布尔值或者一个整数序列。如果为True
,则y
轴绘制在右侧mark_right
:一个布尔值,如果为True
且secondary_y=True
,则在图例中标记为right
kwds
:传递给matplotlib
中的plot
函数的其他关键字参数
在
DataFrame.plot
中,下面的参数意义为:x
:label
或者position
y
:label
或者position
subplots
:一个布尔值,如果为True
,则将每一列作为一个子图来绘制sharex
:一个布尔值。如果为True
,且subplots=True
,则子图共享x
轴sharey
:一个布尔值。如果为True
,且subplots=True
,则子图共享y
轴stacked
:一个布尔值。在bar
中,如果为True
,则将柱状图堆积起来sort_columns
:一个布尔值。如果为True
,则根据列名来决定绘制的先后顺序。
它们返回的是
AxesSubplot
对象,或者AxesSubplot
的ndarray
给出一组序列,我们可以手工绘制每个序列的散布图,以及各自的核密度估计。我们可以使用
scatter_matrix
函数:pandas.tools.plotting.scatter_matrix(frame, alpha=0.5, figsize=None, ax=None,
grid=False, diagonal='hist', marker='.', density_kwds=None, hist_kwds=None,
range_padding=0.05, **kwds)
frame
:为DataFrame
对象diagonal
:选择对角线上的图形类型。可以为'hist'/'kde'
hist_kwds
:绘制hist
的参数density_kwds
:绘制kde
的参数range_padding
:一个浮点数,用于延伸x/y
轴的范围。如果它为0.1
,表示x
轴延伸x_max-xmin
的0.1倍 每一个子图是这样生成的:以DataFrame
中某一列为横坐标,另一列为纵坐标生成的散点图。