【问题标题】:coloring a 3D scatterplot为 3D 散点图着色
【发布时间】:2022-07-08 17:16:10
【问题描述】:

我有一个绘制 3D 散点图的函数,它工作正常,但我不知道如何根据条件为特定数据点赋予颜色,例如:

在下面的代码中,我正在绘制 3 个特征; nbActionsD30、avgActionsMonth 和 actionSHR。

我想为 actionsSHR 值 >= 50 的数据点赋予特定颜色

函数的参数是f1、f2、f3的特征名称。数据是数据框 包含特征。

这是我的函数代码:

def plot3D(f1, f2, f3, data):

%matplotlib widget
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

xs = data[f1]
ys = data[f2]
zs = data[f3]

fig = plt.figure()
ax = Axes3D(fig)

plot = ax.scatter(xs, ys, zs, s=50, color = 'blue', edgecolors = "white")
ax.set_xlabel(f1)
ax.set_ylabel(f2)
ax.set_zlabel(f3)
plt.show()

plot3D("avgActionsMonth", "nbActionsD30", "actionSHR", data)

【问题讨论】:

  • c=list_of_values_to_color_by(见here
  • @tomjn c 参数只定义了我想使用的颜色(颜色列表)来标记点,我的问题是我想用不同的颜色标记 actionsSHR >= 50 的特定数据点

标签: python matplotlib data-visualization scatter3d


【解决方案1】:
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(subplot_kw=dict(projection="3d"))
x, y, z = np.random.normal(size=(3, 1000))
ax.scatter(x, y, z, c=z>1)
plt.show()

给予

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2019-05-14
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多