首页 > 解决方案 > 分隔线的最小和最大长度

问题描述

抱歉,这个愚蠢的问题,但我已经讨论了将近一个多小时了。这是我的数据框示例:

SEASON       Total
0   2004-2005   4
1   2005-2006   4
2   2006-2007   1
3   2007-2008   7
4   2008-2009   7
5   2009-2010   4
6   2010-2011   4
7   2012-2013   4
8   2013-2014   1
9   2014-2015   2
10  2015-2016   3
11  2016-2017   13
12  2017-2018   18
13  2018-2019   8

我已经这样做了:

plt.figure(figsize=(13,6))
plt.plot(per_year.index, per_year['Total'])
plt.xticks(per_year.index, per_year['SEASON'].unique());
plt.title('AVg assist PER YEAR')
plt.axvline(x=10,color='red', linestyle='--')
plt.axhline(y=3.8,color='orange', xmax=10)
plt.axhline(y=11.75, xmax=10)
plt.tight_layout()

我想要的只是能够给我的第一条水平线(它必须停止的地方)提供一个最大长度,给我的第二条水平线提供一个最小长度来说明它必须在哪里完成。如果将轴更改为正确的数字,我很确定我可以做到。但我想保持原样。

标签: pythonmatplotlib

解决方案


来自文档:xmin 和 xmax 参数需要在 0-1 之间

根据 x 项的数量计算比例

xmax = 10/len(per_year.index)

或者使用hline轴的方法:

ax  = plt.gca()
ax.hlines(y=3.8,xmin=0, xmax=10, color='r')
ax.hlines(y=11.75,xmin=0, xmax=10, color='g')

推荐阅读