gpt4 book ai didi

python-3.x - 在 matplotlib 子图中添加一行

转载 作者:行者123 更新时间:2023-12-04 20:32:42 26 4
gpt4 key购买 nike

我想用 matplotlib 绘制两个图形的子图,并在两者中添加一条水平线。这可能是基本的,但我不知道如何指定应在第一个图中绘制其中一条线,它们最终都在最后一个图中。例如

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

s1= pd.Series(np.random.rand(10))
s2= pd.Series(np.random.rand(10))

fig, axes = plt.subplots(nrows=2,ncols=1)

f1= s1.plot(ax=axes[0])
l1=plt.axhline(0.5,color='black',ls='--')
l1.set_label('l1')

f2= s1.plot(ax=axes[1])
l2=plt.axhline(0.7,color='red',ls='--')
l2.set_label('l2')

plt.legend()

subplot with horizontal lines

axhline 没有“ax”作为参数,就像 pandas plot 函数那样。所以这会起作用:
l1=plt.axhline(0.5,color='black',ls='--',ax=axes[0])

我读了 the examples在 matplotlib 中,我尝试了另一个不起作用的选项(可能有充分的理由)
axes[0].plt.axhline(0.5,color='black',ls='--')

我应该如何在子图中画线?最好有传说 谢谢!

最佳答案

在@Nick Becker 的帮助下,我回答了我自己的“语法”问题。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline


s1= pd.Series(np.random.rand(10))
s2= pd.Series(np.random.randn(10))

fig, axes = plt.subplots(nrows=2,ncols=1)

f1= s1.plot(ax=axes[0],label='s1')
l1=axes[0].axhline(0.5,color='black',ls='--')
l1.set_label('l1')

axes[0].legend(loc='best')

f2= s1.plot(ax=axes[1],label='s2')

l2=axes[1].axhline(0.5,color='black',ls='--')

l2.set_label('l2')

axes[1].legend(loc='best')

subplots with horizontal lines

关于python-3.x - 在 matplotlib 子图中添加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42534449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com