У меня есть фрейм данных:
Index Date AA BB CC DD EE FF
0 2019-01-15 0.0 -1.0 0.0 0.0 0.0 2.0
1 2019-01-17 0.0 -1.0 -1.0 -1.0 0.0 2.0
2 2019-01-22 1.0 -1.0 1.0 -1.0 0.0 2.0
3 2019-01-24 0.0 0.0 0.0 0.0 0.0 2.0
4 2019-01-29 1.0 0.0 -1.0 0.0 -1.0 2.0
5 2019-01-31 0.0 -1.0 0.0 0.0 0.0 2.0
6 2019-02-05 1.0 1.0 1.0 0.0 1.0 2.0
7 2019-02-12 2.0 1.0 1.0 0.0 2.0 2.0
, который я строю с:
dfs = dfs.melt('Date', var_name = 'cols', value_name = 'vals')
ax = sns.lineplot(x = "Date", y = 'vals', hue = 'cols',
style = 'cols', markers = True, dashes = False, data = dfs)
ax.set_xticklabels(dfs['Date'].dt.strftime('%d-%m-%Y'))
plt.xticks(rotation = -90)
plt.tight_layout()
plt.show()
, в результате чего:
<img src="https://i.stack.imgur.com/IF5la.png" width="650" />
, что ужасно.Я хочу, чтобы маркеры были точно такими же, как и во фрейме данных, но сглаживались линии.Мне известно о scipy -> spline
(например, здесь ), однако это кажется слишком сложным для преобразования всех столбцов.Существует также Pandas -> resample -> interpolate
(например, здесь ), который очень близок к тому, что я хочу, но я должен повернуть столбец Date
на index
, что я не хочу делать ...
Буду признателен, если вы поможете мне узнать, как лучше всего Pythonic сделать это.
PS С полной версией моего кода можно ознакомиться здесь .