如何在散点图中自定义标记颜色和形状? [复制]
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
,其中包含0
和1
s?这就是为什么您只能看到颜色条顶部和底部的颜色。
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结构如上所示以上是关于如何在散点图中自定义标记颜色和形状? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MATLAB 2014b 的散点图中增加图例的标记大小? [复制]