Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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三维线框打印未按预期打印_Python_Matplotlib_Plot - Fatal编程技术网

Python Matplotlib三维线框打印未按预期打印

Python Matplotlib三维线框打印未按预期打印,python,matplotlib,plot,Python,Matplotlib,Plot,我用两个变量运行模拟:p和Q p和Q都在[0.2,0.4,0.6,0.8]之间变化 p和Q的每一个组合产生一个输出,我称之为NB_的意思。 nb_平均值是通过以P=0.2运行模拟器,并以[.2、.4、.6、.8]改变Q来产生的,之后我转到下一个P(.4),并重复相同的过程 例:下面在nb_中的意思是:p=.2&q=.2->32和p=.2&q=.4->159。。。等等 我试图将线框绘制为: from mpl_toolkits.mplot3d import Axes3D from matplotli

我用两个变量运行模拟:p和Q

p和Q都在[0.2,0.4,0.6,0.8]之间变化

p和Q的每一个组合产生一个输出,我称之为NB_的意思。 nb_平均值是通过以P=0.2运行模拟器,并以[.2、.4、.6、.8]改变Q来产生的,之后我转到下一个P(.4),并重复相同的过程

例:下面在nb_中的意思是:p=.2&q=.2->32和p=.2&q=.4->159。。。等等

我试图将线框绘制为:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np


x=[.2,.2,.2,.2,.4,.4,.4,.4,.6,.6,.6,.6,.8,.8,.8,.8]
y=[.2,.4,.6,.8,.2,.4,.6,.8,.2,.4,.6,.8,.2,.4,.6,.8]
nb_means = [32, 159, 216, 327, 206, 282, 295, 225, 308, 252, 226, 229, 301, 276, 262, 273]

fig = plt.figure()
ax = plt.axes(projection='3d')
X,Y = np.meshgrid(x,y)

ax.set_title('Name Based Routing')
ax.set_xlabel('Prob of Request')
ax.set_ylabel('Prob of Publish')
ax.set_zlabel('RTT')
ax.plot_wireframe(X, Y, nb_means, rstride=10, cstride=10)
plt.show()

但是,正如您在上面的输出中看到的。。。我希望线图沿Q轴增加。但事实并非如此


我的x和y设置不正确吗?

问题出在
x
y
nb\u的意思是
。它们都应该是2D数组(你的
nb_意思是
当前是一个1D列表)。您也不需要使用meshgrid制作
X
Y
,只需重新塑造它们的形状即可:

X = np.reshape(x, (4,4))
Y = np.reshape(y, (4,4))
nb2 = np.reshape(nb_means, (4,4))
...
ax.plot_wireframe(X, Y, nb2)
您也可能并不真正想要rstride=10和cstride=10