Python matplotlib中的plot3d图形有些倾斜
我正在使用matplotlib获取瀑布图,但结果看起来非常奇怪。有人知道它有什么问题吗?Python matplotlib中的plot3d图形有些倾斜,python,matplotlib,waterfall,Python,Matplotlib,Waterfall,我正在使用matplotlib获取瀑布图,但结果看起来非常奇怪。有人知道它有什么问题吗? 我在这里附上了这些数字。第二个是相同的数据,但在普通绘图中。在瀑布图中,为什么颜色没有完全填充 代码如下: def water_fall_1(x,y,Z): #x=[...] #y=[...] #Z=[[z1],[z2],...z[ny]] import numpy as np import matplotlib.pyplot as plt from ma
我在这里附上了这些数字。第二个是相同的数据,但在普通绘图中。在瀑布图中,为什么颜色没有完全填充 代码如下:
def water_fall_1(x,y,Z):
#x=[...]
#y=[...]
#Z=[[z1],[z2],...z[ny]]
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection
from matplotlib.colors import colorConverter
from mpl_toolkits.mplot3d import Axes3D
figs=[]
for jc in range(len(y)):
figs.append(list(zip(x,Z[jc])))
x=np.array(x)
y=np.array(y)
Z=np.array(Z)
xmin=np.floor(np.min((x.astype(np.float))))
xmax=np.ceil(np.max((x.astype(np.float))))
ymin=np.min((y.astype(np.float)))
ymax=np.max((y.astype(np.float)))
zmin=(np.min((Z.astype(np.float))))
zmax=np.max((Z.astype(np.float)))
fig=plt.figure()
ax = Axes3D(fig)
poly = PolyCollection(figs, facecolors=colorConverter.to_rgba("r", alpha=0.5))
ax.add_collection3d(poly, zs=y.astype(np.float), zdir='y')
ax.set_xlim(xmin,xmax)
ax.set_ylim(ymin,ymax)
ax.set_zlim(zmin,zmax)
ax.set_xlabel('$\omega$')
ax.set_ylabel('$T$')
#ax.set_zlabel('$\\frac{1}{2}$')
plt.show()
曲线已完全填充。即,曲线点之间的曲面为红色
考虑以下示例:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection
from mpl_toolkits.mplot3d import Axes3D
bottom=-0.3
x = np.linspace(0,6, num=50)
z = np.sinc(x-4)
verts = zip(x,z)
#verts=verts + [(x.max(),bottom),(x.min(),bottom)]
fig=plt.figure()
ax = Axes3D(fig)
poly = PolyCollection([verts], facecolors="r", alpha=0.5)
ax.add_collection3d(poly, zs=1, zdir='y')
ax.set_xlim(x.min(),x.max())
ax.set_ylim(0,2)
ax.set_zlim(bottom,z.max())
plt.show()
这将生成以下绘图,其中曲线点之间的所有内容都将按预期填充
如果我们现在想要填充曲线和一些底线之间的区域,我们需要添加一些点
verts=verts + [(x.max(),bottom),(x.min(),bottom)]
因此,底线是曲线的一部分,因此也可以填充。
您可以在图像标记前面添加感叹号,使其显示为内联。像这样:
![Fig1][1]
对不起,据说我的名声不够….-!你所说的“未完全填满”是什么意思?你能看到在第一个图中,它的一部分看起来像是被切割的吗?缺少的部分是一个三角形。我所期望的是红色(x=0)将继续保持原来的颜色。感谢帮助我解决声誉问题的人。太好了!~谢谢