当我在 x 轴上绘制包含大量日期的散点图时出现问题

Problem when i do a scatter plot with lot of dates in the x axis

我正在尝试绘制散点图,当我尝试这样做时,x 轴显示了很多日期。有没有办法在散点图中显示的 x 轴上只放置几个日期或年份?

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.dates as mdates

plt.scatter(terremoto_sur['time'],terremoto_sur['mag'])
plt.title('Magnitud terremotos en el tiempo zona Sur')
plt.xlabel('Time')
plt.ylabel('Magnitude')
plt.show()

Here is the scatter plot with the problem

试试这个设置均匀间距 plt.gca().xaxis.set_major_locator(plt.MultipleLocator(1))

您也可以尝试每隔一个刻度进行采样

ax = plt.gca()
ax.set_xticks(ax.get_xticks()[::2])

如果不查看列的 dtype 很难判断,但可能发生的情况是 'time' 列不是时间特定的 pandas 数据类型,如 Timestamp 或 DatetimeIndex。例如,如果 'time' 以 object 的 dtype 存储,那么每个时间数据点本质上都是一个字符串,而 matplotlib 只是用自己的刻度线绘制每个数据点,刻度线下面的字符串。

您应该检查列的数据类型,如有必要,使用类似 to_datetime 方法的方法转换数据类型。