我想在一个图形上绘制一个函数(数据来自数组)和数据的(xmin,ymin)到(xmax,ymax)之间的线
import numpy as np
import matplotlib.pyplot as plt
exo_data = np.loadtxt('./exoplanets.dat')
au2m = 149597870700
day2seconds = 86400
M_Jupiter = 1.898e27
M_Sun = 1.989e30
G = 6.674e11
R=exo_data[:,0]*au2m
T=exo_data[:,1]*day2seconds
Mp=exo_data[:,2]*M_Jupiter
Ms=exo_data[:,3]*M_Sun
Mstar=np.mean(Ms)
C=(mth.pi*4)/G*Mstar
x=R**3
y=T**2
xmin=np.min(R)
ymin=np.min(T)
xmax=np.max(R)
ymax=np.max(T)
plt.plot([xmin,ymin], [xmax,ymax], color='red')
plt.plot(x,y, 'ro', color='blue')
plt.show
plt.close
我在spyder控制台中只有第一个情节,而没有第二个情节
答案 0 :(得分:0)
我不确定它是否对您有用,建议您尝试以下
plt.plot([xmin,ymin], [xmax,ymax], x, y,'ro', color = 'red')
plt.show
答案 1 :(得分:0)
尝试不在蜘蛛控制台中运行脚本,而是在其左侧的编辑器中运行。控制台按命令处理命令,因此,它将同时处理一个图并以相同方式打印它。
使用脚本创建文件code.py
,然后运行它。您可以使用spyder中的“播放”按钮或通过进入控制台并键入python code.py
来完成此操作。
证明一切正确。如here所述。这应该起作用:
from numpy import *
import math
import matplotlib.pyplot as plt
t = linspace(0, 2*math.pi, 400)
a = sin(t)
b = cos(t)
c = a + b
plt.plot(t, a, 'r') # plotting t, a separately
plt.plot(t, b, 'b') # plotting t, b separately
plt.plot(t, c, 'g') # plotting t, c separately
plt.show()
并且应该产生这个。
答案 2 :(得分:0)
最后它有效...是我的错。我用e11声明了G,它必须是e-11