对于任何pandas DataFrame,请说
df
我可以使用
绘制相关信息df.plot()
但是在pandas网站上绘图:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html,我正在寻找一种减少传说大小的方法;它太大了。我怎么能这样做?
我是否使用kwds参数?
上面的绘图网站声明我可以通过以下方式使用kwds:
“kwds:keywords 传递给matplotlib绘图方法的选项“
我该如何使用?我是否使用字典?我该怎么做才能让这个选项引用图例,比如
plt.legend(['foo'],prop={'size':13})
表示图例的字体大小,使其变小。
答案 0 :(得分:2)
DataFrame.plot()
会返回Axes
对象,然后您可以调用ax.legend()
来修改设置:
ax = df.plot()
ax.legend(prop={'size':10})
答案 1 :(得分:0)
您无需执行任何特殊操作即可传递**kwds
(请参阅此SO question以更好地理解**
符号。)
所有不是DataFrame.plot方法的位置参数的参数都将自动传递给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
,该参数没有与图例的直接链接。因此无法使用DataFrame.plot
更新图例属性。
答案 2 :(得分:0)
您可以这样做:
df.plot().legend(prop={'size':10})
您还可以传递更多参数(这会将图例放置在图表之外):
df.plot().\
legend(loc='center left', bbox_to_anchor=(1.0, 0.5))