Python Matplotlib三维线框打印未按预期打印
我用两个变量运行模拟: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。。。等等 我试图将线框绘制为: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
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