所以我想绘制简单的伽玛函数,但我有一些问题。我的代码是:
#!/usr/bin/env python
# -*- coding: cp1250 -*-
#import math
from scipy.special import *
#from scitools.std import *
from pylab import *
def f1(x):
return gamma(x)
x = linspace(-6, 6, 512)
y1 = f1(x)
# Matlab-style syntax:
plot(x, y1)
xlabel('x')
ylabel('y')
legend(r'$\Gamma(x)$')
grid(True)
show()
我尝试从math和scipy.special导入gamma函数但是我收到以下错误:
回溯(最近一次调用最后一次):文件“D:/faxstuff/3.godina/kvantna/plotgamma.py”,第13行,在y1 = f1(x)文件“D:/faxstuff/3.godina/ kvantna / plotgamma.py“,第9行,在f1中返回gamma(x)文件”mtrand.pyx“,第1599行,在mtrand.RandomState.gamma(numpy \ random \ mtrand \ mtrand.c:8389)ValueError:shape&lt ; = 0
怎么做?这应该很容易,但我似乎失败了:(
答案 0 :(得分:3)
其中一个模块(我认为是pylab)是通过伽马随机变量函数遮蔽伽玛函数。这有效,但我不得不关闭对传奇的呼唤(我不知道为什么,但是)。
from scipy.special import gamma as Gamma
#from scitools.std import *
from pylab import *
def f1(x):
return Gamma(x)
x = linspace(-6, 6, 512)
y1 = f1(x)
gca().set_autoscale_on(False)
# Matlab-style syntax:
plot(x, y1)
xlabel('x')
ylabel('y')
# legend(r'$\Gamma(x)$')
axis([-6, 6, -100, 100])
grid(True)
show()
答案 1 :(得分:2)
在Sage笔记本中试试这个:
# Simple example demonstrating how to interact with matplotlib directly.
# Comment plt.clf() to get the plots overlay in each update.
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
@interact
def plot_gamma(a=(1,(1,10)), loc=(0,(0,10)), scale=(1,(1,10))):
rv = stats.gamma(a, loc, scale)
x = np.linspace(-1,20,1000)
plt.plot(x,rv.pdf(x))
plt.grid(True)
plt.savefig('plt.png')
plt.clf()