matplotlib中的子图和hlines无法一起使用

时间:2018-10-23 12:54:02

标签: python-3.x matplotlib

我试图通过子图绘制多个图,并在图上绘制hline,但是当我打开子图区域时,hlines消失并在关闭subplot选项后返回。有人可以帮个忙吗?

## TSH | Time Series plot
import matplotlib 
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
#ax = plt.gca()

### Threshold value on Medicine
tshLLimit=0.27
tshHLimit=4.20
ferrLLimit=13.0
ferrHLimit=150.0

plt.rcParams["figure.figsize"] = (30,15)
plt.rcParams['font.size']=22

subplot=5
plt.subplot(1, 1, 1)
fntSize=18

plt.plot(df['Date'], df['TSH1 (muIU/mg)'], color='blue', marker="s")
plt.title('TSH variation')

#plt.yticks(np.arange(0, 8, step=2))
plt.ylim(0)
plt.ylabel('TSH1 (muIU/mg)')
plt.grid(True)
ax.hlines(y=tshLLimit, xmin="02.02.2014", xmax="10.08.2018",linewidth=2, color='red')
ax.hlines(y=tshHLimit, xmin="02.02.2014", xmax="10.10.2018",linewidth=2, color='red')
plt.text("01.01.2014",3,"hairfall", {'color': 'r', 'fontsize': fntSize})
plt.text("02.7.2015",3,"hairfall", {'color': 'r', 'fontsize': fntSize})
plt.text("02.10.2016",3,"hairfall", {'color': 'r', 'fontsize': fntSize})
plt.text("02.06.2018",3,"hairfall", {'color': 'r', 'fontsize': fntSize})


plt.show()

1 个答案:

答案 0 :(得分:0)

在不知道数据是什么样的情况下,很难确切知道期望的输出,但是您可以尝试更改

plt.subplot(1, 1, 1)

ax = plt.subplot(1, 1, 1)

或致电plt.hlines而不是ax.hlines

我认为这将解决您的问题,因为您当前正在将hlines添加到plt.subplots()生成的默认轴上,而不是子图的轴上。