【问题标题】:How to draw a scatter plot, where the points with the same X-values assigned the same color? [duplicate]如何绘制散点图,其中具有相同 X 值的点分配相同的颜色? [复制]
【发布时间】:2022-01-22 12:07:05
【问题描述】:

各位有经验的朋友,我很好奇如何绘制X值相同的点颜色相同的散点图?假设我们有如下数据集:

import matplotlib.pyplot as plt

list1 = [1,1,1,1,2,2,2,2,3,3,3,3]
list2 = [9,8,10,11,1,2,1,2,4,5,6,7]

plt.scatter(list1, list2)
plt.show()

图片是这样的:

但是,我想绘制如下图。如您所见,具有相同 x 轴值的点具有相同的颜色。我怎样才能做到这一点?提前非常感谢您!

【问题讨论】:

  • 我可以让你对 seaborn stripplot 或 swarmplot 感兴趣吗?
  • 谢谢@Mr.T,这个精选完美解决了我的问题!
  • 谢谢@G.Anderson,Tirtha 的回答是一个非常优雅的解决方案。谢谢你提到这个! : D

标签: python matplotlib seaborn


【解决方案1】:

您可以将 x 值传递给plt.scatter 函数中的c 参数。它将使用这些整数值将颜色映射到点。相同的整数值意味着具有相同的颜色。

import matplotlib.pyplot as plt

list1 = [1,1,1,1,2,2,2,2,3,3,3,3]
list2 = [9,8,10,11,1,2,1,2,4,5,6,7]

plt.scatter(list1, list2, c = list1)
plt.show()

【讨论】:

  • 非常感谢您的回答!请问可以通过这种方法自己定义颜色吗?比如 1 是红色,2 是绿色?
  • 是的。您也可以将颜色列表传递给c,c 中的每个值都表示每个点的颜色。要控制 x 的每个值的颜色,您可以定义一个字典,将 x 中的每个唯一值映射到一种颜色,然后使用该字典为每个点创建颜色列表并将其传递给 c。
猜你喜欢
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
相关资源
最近更新 更多