gpt4 book ai didi

python - Matplotlib 分散 3d 颜色

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:46 25 4
gpt4 key购买 nike

我的问题是,我想用与所有其他点不同的颜色绘制此结构的 0,0,0 点。但是绘图只显示所选颜色的轮廓,而这个球的内部仍然是相同的颜色其他的。我不明白这是怎么回事。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np



fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_aspect("equal")

for x in range(-count,count+1):
for y in range(-count,count+1):
for z in range(-count,count+1):
if x == 0 and y == 0 and z == 0:
ax.scatter(x,y,z, color="g",s=100) #here is the problem
elif ((x+y+z+3*count)%2) == 0:
ax.scatter(*zip([x,y,z]), color="r")
else:
ax.scatter(*zip([x,y,z]), color="b")

plt.show()

plot of cubic structure

最佳答案

您可以使用参数 edgecolorfacecolor 来设置边和面的颜色。

ax.scatter(x,y,z, s=100, edgecolor="r", facecolor="gold")

或者,您可以使用参数 c 直接设置颜色,

ax.scatter(x,y,z, s=100, c="limegreen")

或通过颜色图设置应由颜色表示的值范围。最后一种方法还允许将所有点放在一个散点图中,如下所示:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_aspect("equal")

count = 2
x = range(-count,count+1)
X,Y,Z = np.meshgrid(x,x,x)

c = np.zeros_like(X, dtype=np.float)
c[((X+Y+Z+3*count)%2) == 0] = 0.5
c[count,count,count] = 1

s = np.ones_like(X)*25
s[count,count,count] = 100
ax.scatter(X,Y,Z, c=c,s=s, cmap="brg")

plt.show()

enter image description here

关于python - Matplotlib 分散 3d 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43192679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com