Python 在matplotlib中对齐三维散点栅格上的投影二维打印
我对python没有太多经验,只是一门基础课。我正在尝试创建一个散点图,在绘图区域的面上投影三维和二维绘图 这是 到目前为止,我有:Python 在matplotlib中对齐三维散点栅格上的投影二维打印,python,matplotlib,scatter,Python,Matplotlib,Scatter,我对python没有太多经验,只是一门基础课。我正在尝试创建一个散点图,在绘图区域的面上投影三维和二维绘图 这是 到目前为止,我有: import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline from mpl_toolkits.mplot3d import Axes3D dataset = pd.read_csv("dummy
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from mpl_toolkits.mplot3d import Axes3D
dataset = pd.read_csv("dummy.csv")
x = dataset.das_avg
y = dataset.thick_mm
z = dataset.cool_rate_avg
color = dataset.temp_mold
fig= plt.figure(figsize=(10,5))
ax = Axes3D(fig)
ax.plot(x, z, 'r+', zdir='y', zs=0 ,marker= 'o', alpha=0.05)
ax.plot(y, z, 'g+', zdir='x', zs=0, marker= 'o', alpha=0.05)
ax.plot(x, y, 'y+', zdir='z', zs=0, marker= 'o', alpha=0.05)
ax.scatter(x, y, z, s=20, c=color, cmap=plt.cm.jet)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
sm = plt.cm.ScalarMappable(cmap=plt.cm.jet, norm=plt.Normalize(vmin=color.min(), vmax=color.max()))
sm._A = []
plt.colorbar(sm)
plt.show()
到目前为止,一切都很好;但我在调整图表区域网格上的投影图时遇到问题:
例如,黄点应位于网格上的值2上。
在绘图上使用zs值,我可以对齐它们,但当我更改值时,栅格的比例会移动,绘图不会再次对齐
而且,我不能把这些红点推到图表的后面
有什么方法可以做到这一点吗?只需修改代码中的以下几行,它就会使代码看起来像您想要的那样。您可以根据需要调整
ylim
ax.plot(x, z, 'r+', zdir='y', zs=2.5 ,marker= 'o', alpha=0.05)
ax.plot(x, y, 'y+', zdir='z', zs=0, marker= 'o', alpha=0.05)
ax.set_ylim(0, 2.5)
ax.set_zlim(0, 600)
输出
你能说出“把红点推到图表后面”是什么意思吗。你是说在
x-z
平面上?黄点确实位于y=2
。看起来它们不是的原因纯粹是视角的伪影。如果旋转绘图,您将看到点确实位于x-z平面上的y=2
Yeah。我明白你的意思了……我正在将这张图与模拟软件中的另一张图进行比较,其中的点确实位于y=2的网格线上,所以我认为我需要调整一些东西。好的,请看下面我的答案。我希望有帮助