我需要从下面绘制的每条线的第一个点开始绘制一条水平线。该行从第一个xticks到最后一个x-ticks。要使用ax.hlines()
,我需要知道xmax
和xmin
,我不知道x值是否是分类值。如何绘制这些水平线(虚线为虚线)。
mydf = DataFrame( [[0.70, 0.79, 0.89, 0.76],
[0.73, 0.79, 0.80, 0.67],
[0.74, 0.70, 0.79, 0.87],
[0.74, 0.60, 0.79, 0.7],
[0.74, 0.79, 0.79, 0.7]])
mydf.columns = ['f1', 'f2','f3','f4']
mydf.index = ['a','b','c','d','e']
ax = mydf.plot()
ax.set_xticks(range(len(mydf.index)))
ax.set_xticklabels([item for item in mydf.index.tolist()])
答案 0 :(得分:2)
您不需要遍历各列。您只需添加下面的线以绘制线条即可。
所有这些行的y
参数都是起点。 mydf.iloc[0]
,xmin
将始终为ax.get_lim()[0]
,而xmax
将始终为ax.get_lim()[1]
。
有关更多信息,请参见docs。
ax.hlines(mydf.iloc[0], ax.get_xticks().min(), ax.get_xticks().max(), linestyle='--', color='pink')
输出:
答案 1 :(得分:1)
使用:
mydf = pd.DataFrame( [[0.70, 0.79, 0.89, 0.76],
[0.73, 0.79, 0.80, 0.67],
[0.74, 0.70, 0.79, 0.87],
[0.74, 0.60, 0.79, 0.7],
[0.74, 0.79, 0.79, 0.7]])
mydf.columns = ['f1', 'f2','f3','f4']
mydf.index = ['a','b','c','d','e']
ax = mydf.plot()
ax.set_xticks(range(len(mydf.index)))
ax.set_xticklabels([item for item in mydf.index.tolist()])
for i in range(len(mydf.columns)):
ax.axhline(y=mydf.iloc[0,i], xmin=.05, xmax=.95, ls='--', color='pink')
其中
xmin:标量,可选,默认值:0应介于0和1之间,0为 情节的最左边,情节的最右边是1。
xmax:标量,可选,默认值:1应介于0和1之间,0为 情节的最左边,情节的最右边是1。