Matplotlib 绘图中的标签

Matplotlib 绘图中的标签,matplotlib,pandas,Matplotlib,Pandas,我在为图例添加标签时遇到一些问题。出于某种原因,matplotlib忽略了我在dataframe中创建的标签。有什么帮助吗 熊猫版本:0.13.0 matplotlib版本:1.3.1 import pandas as pd %matplotlib inline import matplotlib.pyplot as plt # Sample dataframe d = {'date': [pd.to_datetime('1/1/2013'), pd.to_datetime('1/1/2014

我在为图例添加标签时遇到一些问题。出于某种原因,matplotlib忽略了我在dataframe中创建的标签。有什么帮助吗

熊猫版本:0.13.0
matplotlib版本:1.3.1

import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt

# Sample dataframe
d = {'date': [pd.to_datetime('1/1/2013'), pd.to_datetime('1/1/2014'), pd.to_datetime('1/1/2015')],
     'number': [1,2,3],
     'letter': ['A','B','C']}
df = pd.DataFrame(d)

####################
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(13, 10))
fig.subplots_adjust(hspace=2.0) ## Create space between plots

# Chart 1
df.plot(ax=axes[0], label='one')

# Chart 2
df.set_index('date')['number'].plot(ax=axes[1], label='two')

# add a little sugar
axes[0].set_title('This is the title')
axes[0].set_ylabel('the y axis')
axes[0].set_xlabel('the x axis')
axes[0].legend(loc='best')
axes[1].legend(loc='best');

问题是图表1将图例返回为“数字”,我希望它显示为“一”

将为第一个轴说明这一点。你可以重复第二遍

In [72]: fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(13, 10))
获取轴的引用

In [73]: ax=df.plot(ax=axes[0])
获得传奇

In [74]: legend = ax.get_legend()
In [75]: text = legend.get_texts()[0]
In [77]: text.get_text()
Out[77]: u'number'
获取图例的文本

In [74]: legend = ax.get_legend()
In [75]: text = legend.get_texts()[0]
In [77]: text.get_text()
Out[77]: u'number'
打印图例的当前文本

In [74]: legend = ax.get_legend()
In [75]: text = legend.get_texts()[0]
In [77]: text.get_text()
Out[77]: u'number'
设置所需的文本

In [78]: text.set_text("one")
要更新的图形

In [79]: plt.draw()
下图显示了第一个轴的更改图例。您可以对另一个轴执行相同的操作

注:IPython autocomplete帮助我们找到了这个答案


谢谢,我还使用Axis[0].legend([“label chart 1”],loc='best')实现了该功能,但我仍然不确定我的原始代码为什么不能工作。