首页 > 解决方案 > 在一个绘图python中绘制多个随机图

问题描述

我想在一个图中绘制多个图,每个图都是随机 python 代码的图;

import numpy as np
import matplotlib.pyplot as plt

N=20
x=[10]
b=0.02
d=0.03

for i in range(0,1000):
    if x[i]<N:
        birth_prob=b*x[i]
    else:
        birth_prob=0
    death_prob=d*x[i]
    random=np.random.uniform(0,1)
    if random<birth_prob:
        xi=x[i]+1
    elif random<birth_prob+death_prob:
        xi=x[i]-1
    else:
        xi=x[i]
    x.append(xi)

plt.plot(x)

如何将至少 10 个不同的图放在一个图中?

标签: python

解决方案


您应该始终使用 matplotlib 图作为对象,例如:

fig, ax = plt.subplots()

这使您正在做的事情更加清晰,并允许您在同一轴上绘制多条线/散点图/等。注意:这首先让我有点困惑,但 matplotlib 将“绘图”称为轴。所以它与图上的 X、Y 轴没有任何关系。

import numpy as np
import matplotlib.pyplot as plt

rows = 5
cols = 2

fig, ax = plt.subplots(rows, cols, figsize=(7,14))

for row in range(0,rows):
    for col in range(0,cols):
        N=20
        x=[10]
        b=0.02
        d=0.03

        for i in range(0,1000):
            if x[i]<N:
                birth_prob=b*x[i]
            else:
                birth_prob=0
            death_prob=d*x[i]
            random=np.random.uniform(0,1)
            if random<birth_prob:
                xi=x[i]+1
            elif random<birth_prob+death_prob:
                xi=x[i]-1
            else:
                xi=x[i]
            x.append(xi)

        ax[row][col].plot(x)

推荐阅读