我的Python程序有一个非常简单的问题-根本没有完成。现在,它正在做我想做的所有事情,而不是我想做的。
我一直试图改变三件事:
f1
和derivative
根本没有关联。我在f1
中声明了函数的模型,但是我必须在derivative
中再次设置所有内容。每次尝试执行其他操作时,main
函数都会遇到一些问题。我最终将添加更多功能,例如集成和诸如此类的功能,如果每次我想对f1
做某件事从头开始声明所有内容时,该程序都会失去其目的。 我应该使用x = Symbol('x')
inside f1
吗?
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
x = Symbol('x')
def f1(a, b, c, d):
y = a*x**3 + b*x**2 + x*c + d
return y
###yprime = y.diff(x)
###return yprime
def derivative(a, b, c, d):
y = a*x**3 + b*x**2 + x*c + d
yprime = y.diff(x)
return yprime
def factorail(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
###colors = iter(cm.rainbow(np.linspace(0, 1, len(ys))))
###for y in ys:
###plt.scatter(x, y, color=next(colors))
def main():
###colors = itertools.cycle(["r", "b", "g"])
y = f1(0,1,2,1)
yp = derivative(0,1,2,1)
print(y)
plot(y, yp)
plot(yp)
plt.show()
if __name__ == '__main__':
main()
答案 0 :(得分:1)
垂直窗口由ylim
选项设置。我建议对x
也使用一些明确的限制,默认-10到10不一定最适合您。而且我建议您阅读the page on SymPy plotting。
颜色由line_color
选项设置。不同的颜色要求对plot
的不同调用,但是可以将它们组合在一起。示例:
p = plot(y, (x, -5, 5), ylim=(-20, 20), line_color='b', show=False)
p.extend(plot(yp, (x, -5, 5), ylim=(-20, 20), line_color='r', show=False))
p.show()
产生
函数重用很容易:
def derivative(a, b, c, d):
y = f1(a, b, c, d)
yprime = y.diff(x)
return yprime
此外:如果像line_color=['b', 'r']
那样尝试plot(y, yp, ylim=(-20, 20), line_color=['b', 'r'])
,会发生什么?有趣的事情发生了:
答案 1 :(得分:0)
我使用以下函数以一般方式获取彼此“相距较远”的颜色。 2396745非常随意,它定义了颜色之间的距离。似乎给了我很好的结果。
def cmap_ints(i):
return "#"+hex(((int(i)+1)*2396745)%(256**3))[2:].rjust(6,"0")
用法:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,100)
y1 = 3*x + 4
y2 = 2*x - 5
plt.plot(x,y1,c=cmap_ints(1))
plt.plot(x,y2,c=cmap_ints(2))