2

我有一个pm2_5数据框数据,我使用matplotlib scatterplot. 我想在不同的 y 值处插入多条水平线,我通过为每个不同的y值手动调用 '''ax.axhline''' 函数来做到这一点。有没有办法让整个过程自动化?

# making a graph with delineated health levels of pm2.5 in the year 2015
fig, ax=plt.subplots(figsize=(10,7));
pm2_5.plot(kind='scatter',x='S_no',y='pm2_5',c='pm2_5',ax=ax, cmap='tab20b');
ax.axhline(y=150,linestyle ='--')
ax.axhline(y=100,linestyle ='--')
ax.axhline(y=200,linestyle ='--')
ax.axhline(y=300,linestyle ='--')

这是它的样子: 在此处输入图像描述

4

2 回答 2

3

您可以使用列表理解:

[ax.axhiline(y=i, linestyle='--') for i in [150,100,200,300]]
于 2020-04-21T15:50:18.363 回答
1

更正上述答案以消除拼写错误...

[ax.axhline(y=i, linestyle='--') for i in [150,100,200,300]]

于 2022-01-07T12:14:22.593 回答