首页 > 解决方案 > Python:根据日期绘制不同颜色的分散数据

问题描述

我有一个看起来像这样的数据框:

         date               value1          value2
0      2018-10-20             11             11
1      2018-10-20             10             10
2      2018-10-20             12              8
3      2018-10-20             12             14
4      2018-10-20             13             13
5      2018-10-20              9             12             
6      2018-10-20             11             15
7      2018-10-20             13              7
8      2018-10-20             10             11
9      2018-10-21             14             13
10     2018-10-21             11             14
11     2018-10-21             15              8
12     2018-10-21             8              11
13     2018-10-21             13             12
14     2018-10-21             14             14
15     2018-10-21             10             15
16     2018-10-22              9             11
17     2018-10-22              8              6
18     2018-10-22             12             15
19     2018-10-22             13             13
20     2018-10-22             11             10
21     2018-10-22             14              8
22     2018-10-22             15             17
23     2018-10-22             10             12
24     2018-10-22             11             11
25     2018-10-22             14              5
26     2018-10-22             17             17

我想绘制一个分散的图表,其中 x=value1, y=value2 并且数据根据日期着色(在本例中为 3 种不同的颜色,一种用于 20,一种用于 21,一种用于 22)。

那可能吗?先感谢您

标签: pythonpandasmatplotlib

解决方案


是的,这是可能的。用于c=赋予颜色。然后,要根据日期创建颜色,请使用以下内容:

v1 = [10, 11]
v2 = [11, 12]

d1 = datetime.datetime.strptime("2018-10-20", "%Y-%M-%d")
d2 = datetime.datetime.strptime("2018-10-22", "%Y-%M-%d")

# considering d1 as the minimum date, easy to retrieve
colors = np.array([(d1-d1).total_seconds(), (d2-d1).total_seconds()])
colors /= np.max(colors)

plt.scatter(x=v1, y=v2, c=colors)

推荐阅读