如何在散点图中自定义标记颜色和形状? [复制]

Posted

技术标签:

【中文标题】如何在散点图中自定义标记颜色和形状? [复制]【英文标题】:How to customize marker colors and shapes in scatter plot? [duplicate] 【发布时间】:2018-05-20 22:42:13 【问题描述】:

我有一个包含 9 列的数据集。 7个特征用于特征选择,其中1个用于分类。 我使用 tsne 库进行特征选择,以查看我的数据可以分类多少。tsne 的结果如图所示。

但是,我想以另一种方式可视化我的数据。我想根据列 f1 (id) 为每个观察设置颜色。例如:

f1(id) f2 f3 ... f9(class label)
1      66 77 ... A
1      44 88 ... A
2      33 55 ... B
2      77 88 ..  B

颜色来自 f1,形状来自 f9 .我不知道怎么做!我会感谢您的 cmets 或给我一些参考资料以了解有关可视化部分的更多信息。 这是我的代码:

plt.scatter(visualize_x, visualize_y, c= y,marker='^', cmap=plt.cm.get_cmap("jet", 10))

【问题讨论】:

你必须解释更多。你想如何给点上色?每个颜色都不一样?或者所有输出变量 == 1 作为一种颜色,其余作为另一种颜色的那些? 所以颜色c=y,其中包含01s?这就是为什么您只能看到颜色条顶部和底部的颜色。 visualize_x 和visualize_y 的哪些值对应于这7 个特征中的每一个?你想看到一个有 7 种颜色的散点图,每个特征一个,对吧?一个初步的问题是获取与给定颜色相关的 x 和 y 值 @bnaecker 我想为不同的观察使用不同的颜色,但使用形状来标记它们,例如第一个人的颜色为红色,属于 1 类,用 + 表示。我希望那会很清楚 @AlterNative 好的,听起来您希望点的颜色代表观察(所以每个点都有不同的颜色),以及标记样式代表类。对吗? 【参考方案1】:

这是你追求的东西吗?

from matplotlib import pyplot as plt 

#generate a list of markers and another of colors 
markers = ["." , "," , "o" , "v" , "^" , "<", ">"]
colors = ['r','g','b','c','m', 'y', 'k']

#make a sample dataset
x = np.arange(0,10)  #test x values.. every feature gets the same x values but you can generalize this
y = [s*x for s in np.arange(7)] #generate 7 arrays of y values 


for i in range(7): #for each of the 7 features 
    mi = markers[i] #marker for ith feature 
    xi = x #x array for ith feature .. here is where you would generalize      different x for every feature
    yi = y[i] #y array for ith feature 
    ci = colors[i] #color for ith feature 
    plt.scatter(xi,yi,marker=mi, color=ci) 
plt.show() 

【讨论】:

感谢您的解决方案,但我认为这不是我想要的。 我认为可以肯定地说,我无法再尝试进一步帮助您。你需要什么? 我试图更好地解释我的问题,看来我的问题不是很好。 我知道你有七个类别,每个类别都有一组 (x,y,c) 其中 x,y 是平面中的坐标,c 是 0 或 1 然后你想要不同的颜色和标记每个类别。还是您希望每个类别有不同的标记,每个 c 有不同的颜色? 因此构造对应于每个标记和颜色组合的适当点 x,y 的列表。然后,对 plt.scatter() 中的每个调用使用适当的 x、y、标记和颜色值循环标记/颜色组合的数量。你需要的matplotlib结构如上所示

以上是关于如何在散点图中自定义标记颜色和形状? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

R语言如何在散点图中进行样本点标记?

使用补丁自定义散点图中的图例标记面颜色

如何在 MATLAB 2014b 的散点图中增加图例的标记大小? [复制]

根据值更改散点图中特定点的形状

如何在 Plotly 3D 散点图中设置点标记的样式/格式?

如何使用 plotly 在散点图中显示第三个变量的第二个图例?