【问题标题】:Stripplot color points based on date基于日期的带状图颜色点
【发布时间】:2020-11-27 14:27:33
【问题描述】:

我有一个数据,它具有基于不同日期的 A、B、C 和 D 的各种值,我想制作这些点的条形图,以便最近日期的数据点应该更暗(或具有更多的 alpha 值) 比较以前日期的数据点。

这就是我现在所拥有的,我所需要的只是根据每个桶的日期对点进行着色。但我无法弄清楚

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mlp
plt.style.use("ggplot")

data = pd.DataFrame({"Date":pd.date_range(start="2020-01-06", end="2020-08-10", freq="W-MON"),
                  "A":[np.random.randint(-5, 50) for _ in range(len(pd.date_range(start="2020-01-06", end="2020-08-10", freq="W-MON")))],
                  "B":[np.random.randint(-5, 50) for _ in range(len(pd.date_range(start="2020-01-06", end="2020-08-10", freq="W-MON")))],
                  "C":[np.random.randint(-10, 50) for _ in range(len(pd.date_range(start="2020-01-06", end="2020-08-10", freq="W-MON")))],
                  "D":[np.random.randint(9, 50) for _ in range(len(pd.date_range(start="2020-01-06", end="2020-08-10", freq="W-MON")))]})
data.set_index("Date", inplace=True)
data.head()
sns.catplot(data=data, aspect=15/6, height=6)

这是上面代码的结果

【问题讨论】:

  • 你的意思是下面的颜色最深,上面的颜色更浅?你试过hue参数吗?
  • 是的,我没有成功

标签: python pandas data-visualization data-science seaborn


【解决方案1】:

具有随机 x 位移的散点图可用于每列应用一个颜色图。

为了说明效果,下面的示例使用了最新值最大的随机数据。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

plt.style.use("ggplot")
dates = pd.date_range(start="2020-01-06", end="2020-08-10", freq="W-MON")
N = len(dates)
data = pd.DataFrame({"Date": dates,
                     "A": 30 + np.random.uniform(-5, 8, N).cumsum(),
                     "B": 20 + np.random.uniform(-4, 9, N).cumsum(),
                     "C": 25 + np.random.uniform(-4, 7, N).cumsum(),
                     "D": 40 + np.random.uniform(-2, 8, N).cumsum()})
data.set_index("Date", inplace=True)
columns = data.columns
for col_id, (column, cmap) in enumerate(zip(columns, ['Reds', 'Blues', 'Greens', 'Purples'])):
    plt.scatter(col_id + np.random.uniform(-0.2, 0.2, N), data[column], c=range(N), cmap=cmap)
plt.xticks(range(len(columns)), columns)
plt.show()

【讨论】:

  • 非常感谢,这对我来说非常有用。!
猜你喜欢
  • 1970-01-01
  • 2013-06-26
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 2018-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多