【问题标题】:Color code points on 3D scatter plot with 350 points具有 350 个点的 3D 散点图上的颜色代码点
【发布时间】:2019-08-12 19:36:08
【问题描述】:

我正在做 PCA,有 350 个点要绘制。我已经成功地将它们绘制在 3D 图上。我想给它们上色以告诉我的 3D 图上哪个点是哪个点。可以每一个上色吗?也许颜色点是 1 到 50 种不同深浅的绿色,然后是 51 到 100 种不同深浅的红色,等等?而且颜色越浅,数字越小?

【问题讨论】:

  • 这绝对是可能的。我不知道确切的代码,但你必须(可能)做的是:用你想要的所有颜色定义一个数组。 seaborn 有用于定义色阶的工具,因此您可以获得绿色、红色和蓝色的 50 色阶,然后附加它们。然后你必须对你的散点进行排序,然后循环遍历它们,这样你就可以按照你想要的顺序给每个颜色中的一种。如果我有更多时间,我可以帮助您了解确切的方法和功能,但现在我不能。希望对你有帮助
  • 什么绘图库?
  • 谢谢 Juan C。我会看看我能用 seaborn 做些什么。
  • Linuxios - 我是 python 新手,所以我认为你的问题的正确答案是 matplotlib。我正在使用 ax.scatter 创建散点图。
  • 抱歉,我并不清楚我的建议是在 matplotlib 上绘图,但使用 seaborn 调色板工具

标签: python matplotlib seaborn


【解决方案1】:

您提到您一直在尝试使用matplotlibax.scatter 执行此操作。我认为对于您的示例,您需要的所有功能都已内置到 ax.scater 中,并带有 c 输入参数。例如,以下是否符合您的要求?

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

# Some dummy data
xval = np.random.randn(350)
yval = np.random.randn(350)
zval = np.exp( - (xval**2 + yval**2)/0.5)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

cax = ax.scatter(xval, yval, zval, cmap=plt.cm.viridis, c=zval) 
fig.colorbar(cax)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2012-02-12
    • 2019-05-14
    • 2013-08-16
    相关资源
    最近更新 更多