seaborn 散点图日期时间 xaxis 太宽

Era*_*ran 9 python pandas seaborn

我有这个数据框:

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')}})
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

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')}})
Run Code Online (Sandbox Code Playgroud)

请注意,所有这些DateTimeUTC都在 2018 年之内。当我尝试使用 sns.scatterplot 绘制深度与时间的关系图时,我得到:

sns.scatterplot('DateTimeUTC', 'Depth', data=df)
Run Code Online (Sandbox Code Playgroud)

阴谋

为什么 X 轴从 2000 年开始?难道我做错了什么?

Era*_*ran 3

我将这个问题作为问题发布在 Github 上,并得到了很好的回应。基本上,问题是plt.scatter不能很好地处理日期,而seaborn使用它。如果seaborn将为x轴添加类型检查(它使用plt.plot_date日期值),那么这个问题将得到修复。与此同时,人们可以创建一个sns.scatterplot完全可以做到这一点的自定义版本。