我试图理解为什么标签的顺序在下面的情况下会这样。
我首先绘制pandas数据框,然后绘制一条水平线。然后我更改图例标签并按顺序创建它们(pandas列名,行标签即['case0', 'case1', 'case2'] + ['line label']
)。为什么最终结果改变了?
获得正确顺序的唯一方法是使用ax.legend(['line label']+['case0', 'case1', 'case2'], fontsize=6, loc='upper left')
,但这是违反直觉的。
import numpy as np, pandas as pd
data = np.random.rand(5,3)
plt.figure(figsize=figsize, dpi=120)
ax=pd.DataFrame(data).plot.bar(color=pal)
ax.axhline(y=0.4, lw=1, ls='--', c='k', label='line')
ax.legend(['case0', 'case1', 'case2'] + ['line label'], fontsize=6, loc='upper left')
1条答案
按热度按时间jum4pzuy1#
我做了一些研究,默认情况下,
lines
s被附加到图形之前的句柄:可能的解决方案是
append
句柄到现有句柄的末尾: