Pandas 从matplotlib.axes获取线和标签
我需要得到绘制数据帧时生成的线 在下面的代码中,我们尝试了两种方法,每种方法都有一个问题Pandas 从matplotlib.axes获取线和标签,pandas,matplotlib,Pandas,Matplotlib,我需要得到绘制数据帧时生成的线 在下面的代码中,我们尝试了两种方法,每种方法都有一个问题 import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2) #ax1.plot(df) #no labels #ax1 = df.plot()
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
#ax1.plot(df) #no labels
#ax1 = df.plot() #new figure
plt.show()
lines = ax1.get_lines()
labels = [str(line.get_label()) for line in lines]
我打算获得要在上使用的线条和标签
我的真实df是多索引的,但我希望这不会干扰问题,请告诉我是否需要更精确地说明这一点。我以您引用的官方参考为例,清楚地说明了如何以数据帧格式获取数据。您可以使用
iterrows()
逐个获取数据帧的行。请参阅“”
试试这个:-
df.plot(ax=ax1)
代替创建新绘图的ax1=df.plot()
。
选项
ax=ax1
声明轴ax1
用于绘图。谢谢,我想我不太清楚我的疑问,或者我理解词汇表有问题。不需要从dataframe获取数据,只需要从line对象获取数据。由于df的列数可变,因此l0、l1、l2=。。。有些东西对我不起作用。
df.plot(ax=ax1)