Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 询问matplotlib streamplot“中的错误;第'行;x';必须相等”;_Python_Matplotlib - Fatal编程技术网

Python 询问matplotlib streamplot“中的错误;第'行;x';必须相等”;

Python 询问matplotlib streamplot“中的错误;第'行;x';必须相等”;,python,matplotlib,Python,Matplotlib,我试图绘制(B_x,B_z)场线,代码写在下面。我使用的函数是“streamplot(x,z,Bx,Bz)”。运行后,“x”、“z”、“Bx”和“Bz”的类型为float64,大小为(30L,30L),相等 但是,运行后会显示范围(0,1)和“ValueError:x”的行必须相等”的橙色画布图。代码中有什么问题 import numpy as np import math as m from matplotlib.pyplot import cm # color map import matp

我试图绘制(B_x,B_z)场线,代码写在下面。我使用的函数是“streamplot(x,z,Bx,Bz)”。运行后,“x”、“z”、“Bx”和“Bz”的类型为float64,大小为(30L,30L),相等

但是,运行后会显示范围(0,1)和“ValueError:x”的行必须相等”的橙色画布图。代码中有什么问题

import numpy as np
import math as m
from matplotlib.pyplot import cm # color map
import matplotlib.pyplot as plt

r_E=6.4*10**6 # (m)
B0=0.0001

Earth = plt.Circle((0, 0), 6400000,color='orange')

plot=plt.figure()
x,z=np.mgrid[-9000000:9000000:30j, -9000000:9000000:30j]
r=np.sqrt(np.add(np.square(x),np.square(z)))
ax=plot.gca()
ax.add_patch(Earth)

B_x=[]
B_z=[]
for i in range(len(x)):
    bx=[]
    bz=[]
    for j in range(len(x)):
        bx.append(B0*(r_E/r[i,j])**3*(x[i,j]*z[i,j]/r[i,j]**2)*(1-( 3+x[i,j]/(x[i,j]**2)**(1.0/2) )/8))
        bz.append(B0*(r_E/r[i,j])**3/r[i,j]**2*(z[i,j]**2-(x[i,j]**2)*(3+x[i,j]/(x[i,j]**2)**(1.0/2))/8))
    B_x.append(bx)
    B_z.append(bz)

Bx=np.asarray(B_x)
Bz=np.asarray(B_z)

ax.streamplot(x,z,Bx,Bz)
plt.show(plot)

streamplot
需要
x
z
作为向量。尝试:

x = np.linspace(-90000000,9000000, 30)
z = np.linspace(-90000000,9000000, 30)
ax.streamplot(x,z,Bx,Bz)
换成

    streamplot(z,y,Bz,Bx)
我对一个非线性系统做了同样的测试,我不知道为什么会抛出这个错误,但是当我反转变量时,它起了作用(这是因为另一个图形使用了网格)