【问题标题】:How to plot a pd.Series and use the color for each point coming from another data source?如何绘制 pd.Series 并使用来自另一个数据源的每个点的颜色?
【发布时间】:2020-04-28 23:43:37
【问题描述】:

我有一个名为datapd.Series 我想绘制,我还有另一个与data 具有相同索引的系列名为colors。我想绘制data,并且对于绘图的每个点,我想根据系列colors 中的相应值对其进行着色(使用一些颜色图)。是否可以在matplotlibseaborn 中进行操作?

【问题讨论】:

  • 你能澄清一下是什么样的情节吗?我假设散点图,但这如何与单个 Series 一起工作?
  • 可以在matplotlibseaborn 中实现吗? 不幸的是,在编程方面,大多数事情都是可能的。你有一个具体的问题吗?请参阅How to Askhelp center

标签: python pandas matplotlib seaborn


【解决方案1】:

您可以使用matplotlib 来做到这一点,例如:

import matplotlib.pyplot as plt

data = pd.Series(range(5))
colors = pd.Series(['r','g','b','b','r'])

plt.scatter(data.index, data, c=colors)
plt.show()

或者如果系列颜色更像组号(而不是颜色),您可以使用seaborn 来做到这一点:

import seaborn as sns

data = pd.Series(range(5))
colors = pd.Series([0, 1, 2, 2, 0])

sns.scatterplot(data.index, data, hue=colors)

【讨论】:

  • 感谢您的回答。如果颜色是数值,比如从 0 到 1 怎么办?
  • @motam79 seaborn 选项不关心值本身,只关心哪一个是相同的,所以如果是pd.Series([0, 0.1, 0.2, 0.2, 0]),它会给出相似的结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多