график рассеяния морской волны дата / время слишком большие - PullRequest
0 голосов
/ 05 января 2019

У меня есть этот фрейм данных:

pd.DataFrame({'Depth': {0: 0.2,
  1: 0.4,
  2: 0.4,
  3: 0.4,
  4: 0.4,
  5: 0.4,
  6: 0.6000000000000001,
  7: 0.4,
  8: 3.2,
  9: 2.0},
 'DateTimeUTC': {0: Timestamp('2018-03-28 06:25:08'),
  1: Timestamp('2018-03-28 06:25:49'),
  2: Timestamp('2018-03-28 06:27:06'),
  3: Timestamp('2018-03-28 06:32:11'),
  4: Timestamp('2018-03-28 06:32:59'),
  5: Timestamp('2018-03-28 06:34:02'),
  6: Timestamp('2018-03-28 06:35:38'),
  7: Timestamp('2018-03-28 06:37:04'),
  8: Timestamp('2018-03-28 06:39:08'),
  9: Timestamp('2018-03-28 06:40:52')}})

, который выглядит так:

<table>
  <tr><th></th><th>Depth</th><th>DateTimeUTC</th></tr>
  <tr><th>0</th><td>0.2</td><td>2018-03-28 06:25:08</td></tr>
  <tr><th>1</th><td>0.4</td><td>2018-03-28 06:25:49</td></tr>
  <tr><th>2</th><td>0.4</td><td>2018-03-28 06:27:06</td></tr>
  <tr><th>3</th><td>0.4</td><td>2018-03-28 06:32:11</td></tr>
  <tr><th>4</th><td>0.4</td><td>2018-03-28 06:32:59</td></tr>
  <tr><th>5</th><td>0.4</td><td>2018-03-28 06:34:02</td></tr>
  <tr><th>6</th><td>0.6</td><td>2018-03-28 06:35:38</td></tr>
  <tr><th>7</th><td>0.4</td><td>2018-03-28 06:37:04</td></tr>
  <tr><th>8</th><td>3.2</td><td>2018-03-28 06:39:08</td></tr>
  <tr><th>9</th><td>2.0</td><td>2018-03-28 06:40:52</td></tr>
</table>

Обратите внимание, что все DateTimeUTC находятся в пределах 2018. Когда я пытаюсь построить график зависимости глубины от времени с помощью sns.scatterplot, я получаю:

sns.scatterplot('DateTimeUTC', 'Depth', data=df)

plot

Почему ось X начинается в 2000 году? Я что-то не так делаю?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Я разместил вопрос как проблему на Github и получил отличный ответ . По сути, проблема в том, что plt.scatter плохо работает с датами, и Seaborn использует его. Если seaborn добавит проверку типа для оси x, которая вместо значений использует plt.plot_date, это будет исправлено. Между тем, можно создать собственную версию sns.scatterplot, которая делает это точно.

0 голосов
/ 05 января 2019

В качестве альтернативы вы можете использовать морские рожки lineplot , которые имеют правильную ось X:

sns.lineplot(x='DateTimeUTC', y='Depth', data=df, marker='o')

Или вы можете использовать:

plt.plot(df['DateTimeUTC'], df['Depth'], linestyle='None', marker='o')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...