Panda DataFrame 传入参数进行绘图
Panda DataFrame Passing in Parameters For Plotting
对于任何 pandas DataFrame,说
df
我可以使用
绘制相关信息
df.plot()
但是在 pandas 绘图站点上:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html,我正在寻找一种减小图例大小的方法;它太大了。我怎样才能做到这一点?
我是否使用 kwds 参数?
上面的绘图站点指出我可以通过以下方式使用 kwds:
"kwds : 关键词
传递给 matplotlib 绘图方法的选项
我该如何使用它?我用字典吗?我怎样才能使这个选项引用图例,即像
这样的东西
plt.legend(['foo'],prop={'size':13})
用于图例的字体大小,使其变小。
DataFrame.plot()
returns Axes
对象,然后可以调用ax.legend()
修改设置:
ax = df.plot()
ax.legend(prop={'size':10})
您无需执行任何特殊操作即可传递 **kwds
(请参阅此 SO question 以更好地理解 **
表示法)。
所有不是 DataFrame.plot method will be passed to the pyplot.plt 方法的位置参数的参数自动。
注意:kwds
代表关键字参数,所以你必须使用arg_name = arg_value
。
您可能已经在不知不觉中使用了它,例如在 df.plot(alpha=0.5)
中:alpha 不是 DataFrame.plot
的位置参数,因此它被传递给 pyplot.plt
.
试试就可以看到aalpha
:错误栈指向matplotlib,不是pandas。
--
注意:label
参数不能按原样工作。
在 pandas code 中,您可以看到图例标签是根据列名自动生成的,除非明确传递了 y
参数。这是有道理的,因为 y
只能是一列,其中 DataFrame.plot
允许您一次绘制所有列。但是 label
不接受值列表,因此无法知道要更新哪个标签。
这意味着你有三个选择。将单个列名称作为 y
传递:在这种情况下 label
将按预期工作。或之后更新图例(请参阅 legend guide 以供参考)。或将单列 DataFrame 用作 Series。
--
编辑原始问题:**kwds
参数传递给 pyplot.plt
,没有直接 link 到图例。因此无法使用 DataFrame.plot
.
更新图例属性
你可以这样做:
df.plot().legend(prop={'size':10})
您还可以传递更多参数(这会将图例放置在绘图之外):
df.plot().\
legend(loc='center left', bbox_to_anchor=(1.0, 0.5))
对于任何 pandas DataFrame,说
df
我可以使用
绘制相关信息df.plot()
但是在 pandas 绘图站点上:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html,我正在寻找一种减小图例大小的方法;它太大了。我怎样才能做到这一点?
我是否使用 kwds 参数?
上面的绘图站点指出我可以通过以下方式使用 kwds:
"kwds : 关键词 传递给 matplotlib 绘图方法的选项
我该如何使用它?我用字典吗?我怎样才能使这个选项引用图例,即像
这样的东西plt.legend(['foo'],prop={'size':13})
用于图例的字体大小,使其变小。
DataFrame.plot()
returns Axes
对象,然后可以调用ax.legend()
修改设置:
ax = df.plot()
ax.legend(prop={'size':10})
您无需执行任何特殊操作即可传递 **kwds
(请参阅此 SO question 以更好地理解 **
表示法)。
所有不是 DataFrame.plot method will be passed to the pyplot.plt 方法的位置参数的参数自动。
注意:kwds
代表关键字参数,所以你必须使用arg_name = arg_value
。
您可能已经在不知不觉中使用了它,例如在 df.plot(alpha=0.5)
中:alpha 不是 DataFrame.plot
的位置参数,因此它被传递给 pyplot.plt
.
试试就可以看到aalpha
:错误栈指向matplotlib,不是pandas。
--
注意:label
参数不能按原样工作。
在 pandas code 中,您可以看到图例标签是根据列名自动生成的,除非明确传递了 y
参数。这是有道理的,因为 y
只能是一列,其中 DataFrame.plot
允许您一次绘制所有列。但是 label
不接受值列表,因此无法知道要更新哪个标签。
这意味着你有三个选择。将单个列名称作为 y
传递:在这种情况下 label
将按预期工作。或之后更新图例(请参阅 legend guide 以供参考)。或将单列 DataFrame 用作 Series。
--
编辑原始问题:**kwds
参数传递给 pyplot.plt
,没有直接 link 到图例。因此无法使用 DataFrame.plot
.
你可以这样做:
df.plot().legend(prop={'size':10})
您还可以传递更多参数(这会将图例放置在绘图之外):
df.plot().\
legend(loc='center left', bbox_to_anchor=(1.0, 0.5))