绘制一个图并在Python上显示点

时间:2017-03-30 21:37:14

标签: python plot point

我使用Python绘制2轴图。

X轴是' Q'(整数); Y轴是' Z(Q)',' Q'的函数。

我希望Q为0,1,2,...,10之间的整数。我已经定义了Z(Q),它运行正常。

我希望在图上看到Z(Q)与Q的关系图,每个点(0,1,2,...,10)。

我可以写:

for Q in range(0, 10):
   pl.plot(Q,Z(Q))

它会返回错误。

错误讯息:

  

姓名' Q'没有定义。

如何在定义Q时更改代码?

谢谢!

附录 - 整个代码:

import numpy as np
import scipy.stats as stats
from scipy.stats import poisson, norm

mu = 4.68
cs = 100
co = 300
G = poisson(mu)
p = G.pmf(np.arange(3*mu))

def Z(Q):
    ES = sum(i*p[i] for i in range(len(p)))
    return co*max((Q-ES), 0) + cs*max((ES-Q), 0)

Qstar = np.ceil(poisson.ppf(co/(cs+co), mu))
print(Qstar)


from scipy.integrate import quad
import pylab as pl


for Q in range(0, Qstar):
    pl.plot(Q,Z(Q))

这是我的完整代码,最后两行不返回任何结果,其余的都没问题。谢谢!

1 个答案:

答案 0 :(得分:0)

问题是numpy数据转换,这不能在range()函数中使用,我已经更正了考虑上面的代码。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>Item</li>
</ul>

<ul>
  <li>Item</li>
</ul>

<ul>
  <li>Item</li>
  <li>Item</li>
</ul>

<ul>
  <li>Item</li>
  <li>Item</li>
  <li>Item</li>
  <li>Item</li>
</ul>

<ul>
  <li>Item</li>
  <li>Item</li>
</ul>

enter image description here

行:

import numpy as np
import scipy.stats as stats
from scipy.stats import poisson, norm

mu = 4.68
cs = 100
co = 300
G = poisson(mu)
p = G.pmf(np.arange(3*mu))

def Z(Q):
    ES = sum(i*p[i] for i in range(len(p)))
    return co*max((Q-ES), 0) + cs*max((ES-Q), 0)

Qstar = np.ceil(poisson.ppf(co/(cs+co), mu))
print(Qstar)

Qstar = int(np.float64(Qstar).item())


from scipy.integrate import quad
import pylab as pl


for Q in range(0, Qstar):
    pl.plot(Q,Z(Q), '*')

pl.show()

enter image description here