Matplotlib嵌套循环中的多个图形

2024-04-30 00:55:28 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我要生成一个图,用平均数据与目标的接近程度来着色。(真正的程序是一个试图学习权重的机器学习算法)。我想为最终绘图中的每个数据点生成一个柱状图,但我似乎不能独立地生成这些图。任何帮助都将不胜感激。在

import matplotlib.pyplot as plt
import numpy as np

def generateData(goal):
    x=[_ for _ in range(20)]
    y=[10+np.random.exponential()*5 for _ in range(100)]
    return x,y

def drawHistogram(data,nBins):
    plt.figure(2)
    plt.hist(diffs,nBins)
    plt.draw()
    plt.show()

sweep=np.linspace(10,20,4)

for goal in sweep:
    for gw2 in sweep:

        diffs=[]

        for i in range(10):
            data=generateData(goal)
            diffs.append(goal-np.mean(data[1]))


        #generate plot
        plt.figure(1)
        clr=(abs(np.mean(diffs))/goal,0,0)
        plt.plot([goal], [gw2], marker="s", mew='1', ms='35', color=clr)

        drawHistogram(diffs,5) ##Comment this line out to see what the final graph should look like

plt.figure(1)
plt.draw()
plt.show()

Tags: 数据inimportfordatadefasnp
1条回答
网友
1楼 · 发布于 2024-04-30 00:55:28

这将生成17个单独的直方图和1个带有红色方块的最终图形。在

import matplotlib.pyplot as plt
import numpy as np

def generateData(goal):
    x=[_ for _ in range(20)]
    y=[10+np.random.exponential()*5 for _ in range(100)]
    return x,y

def drawHistogram(data,nBins):
    plt.figure()
    plt.hist(diffs,nBins)

sweep=np.linspace(10,20,4)

for goal in sweep:
    for gw2 in sweep:

        diffs=[]

        for i in range(10):
            data=generateData(goal)
            diffs.append(goal-np.mean(data[1]))

        #generate plot
        plt.figure(1)
        clr=(abs(np.mean(diffs))/goal,0,0)
        plt.plot([goal], [gw2], marker="s", mew='1', ms='35', color=clr)

        drawHistogram(diffs,5) ##Comment this line out to see what the final graph should look like

plt.draw()
plt.show()

相关问题 更多 >