如何在0,1之间绘制y?

2024-04-19 00:19:38 发布

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

我试图在(0,1)或(0和lees than 1)之间绘制y 我试过很多方法,但是我的柱状图不好,你觉得有吗 你能帮我个忙吗matplotlib.pyplot.ylim(0.0,1)但不起作用

代码是

import numpy
import numpy as np
import matplotlib.pyplot
import pylab
data = []


for j in range(40000):
    totalX= 0
    totalY = 0
    for i in range (5):

        # calculate order
        X = numpy.random.gamma(5.0)
        totalX = totalX+ X


        # calculate production
        Y = min(7.26, X)

        totalY = totalY + Y

        # calcculate new inventory
        #inventory = inventory + production - order
       # if inventory < 0:
         #   inventory = 0

    # calculate fill rate for last 5 orders
    fr = float(totalY) / float(totalX)
    if fr > 1:
        fr = 1

    # append FR to dataset
    data.append(fr)




matplotlib.pyplot.hist(data, normed = True, bins =30, align = 'right')
#matplotlib.pyplot.xticks(([.75, .80, .85, .90, .95, 1]))
matplotlib.pyplot.xlim(.70, 1.009)

#matplotlib.pyplot.minorticks_on()
matplotlib.pyplot.tick_params(axis='both', length = 10)
matplotlib.pyplot.axvline(numpy.mean(data), color = 'r')
matplotlib.pyplot.xlabel('Fill Rate')
matplotlib.pyplot.ylabel('Probability')
pylab.show()

Tags: inimportnumpyfordatamatplotliborderrange
1条回答
网友
1楼 · 发布于 2024-04-19 00:19:38

当你说“我试图在(0,1)之间或(0和lees than 1)之间绘制y”,你的意思是你想让这些条相加为1?在

在这种情况下,你应该考虑更换

    matplotlib.pyplot.hist(data, normed = True, bins =30, align = 'right')

^{pr2}$

如图所示:plotting histograms whose bar heights sum to 1 in matplotlib

注:Normed=True允许您将条形图上的积分等于1(而不是条形图的总和)

相关问题 更多 >