我有一个看起来像这样的数据框:
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)着色。
有可能吗?预先谢谢你
答案 0 :(得分:1)
是的,seaborn是最理想的选择,并提供了许多选择
import seaborn as sns
sns.scatterplot(x='value1', y='value2', hue='date', data=df)
答案 1 :(得分:1)
是的,这是可能的。使用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)
答案 2 :(得分:0)
plt.scatter(x_vals, y_vals, c = z_vals, cmap = 'rainbow')
基本上,将“ c”设置为等于日期,然后选择适当的颜色图。