for循环在一个图中绘制多个图形

时间:2020-09-22 10:12:32

标签: python pandas for-loop matplotlib

我正在尝试在一个图中绘制多个图形。我打算通过for循环来实现。

x = df1['mrwSmpVWi']
c = df['c']
a = df['a']
b = df['b']
    
y = (c / (1 + (a) * np.exp(-b*(x))))
   
for number in df.Seriennummer:
    plt.plot(x,y, linewidth = 4)
    plt.title("TEST")
    plt.xlabel('Wind in m/s')
    plt.ylabel('Leistung in kWh')
    plt.xlim(0,25)
    plt.ylim(0,1900)
    plt.show()

计算不起作用,我只在图中得到点,然后得到3个不同的图。

这是df:

Seriennummer    c   a   b
0   701085  1526    256 0.597
1   701086  1193    271 0.659
2   701087  1266    217 0.607

有人知道我做错了吗? [![在此处输入图片描述] [1]] [1]

Df1具有约500,000行。这是df1的一部分:

    Seriennummer    mrwSmpVWi   mrwSmpP
422 701087.0    2.9 25.0
423 701090.0    3.9 56.0
424 701088.0    3.2 22.0
425 701086.0    4.0 49.0
426 701092.0    3.7 46.0
427 701089.0    3.3 0.0
428 701085.0    2.4 4.0
429 701091.0    3.6 40.0
430 701087.0    2.7 11.0
431 701090.0    3.1 23.0
432 701086.0    3.6 35.0

预期输出应为具有多个逻辑图的图。就是这样:[![在此处输入图片描述] [2]] [2]

编辑:

1 个答案:

答案 0 :(得分:1)

我猜您正在使用matplotlib。您可以使用类似的

import matplotlib.pyplot as plt

# some calculations for x and y ...

fig, ax = plt.subplots(ncols=1,nrows=1)

for i in range(10):
    ax.plot(x[i],y[i])

plt.show()

更多信息可以在matplotlib子图文档中找到> https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html

因为您的问题与熊猫数据框有关,请尝试类似的

for number in df.Seriennummer:
    x = df1.loc['Seriennummer'==number]['mrwSmpVWi']
    y = (c['Seriennummer'==number] / (1 + (a['Seriennummer'==number]) * np.exp(-b['Seriennummer'==number]*(x))))
    plt.plot(x,y, linewidth = 4)