Python 如何在matplotlib散点中使用第三个数据帧列作为x轴标记/标签

Python 如何在matplotlib散点中使用第三个数据帧列作为x轴标记/标签,python,pandas,matplotlib,Python,Pandas,Matplotlib,今天,我正努力用数据帧来理解matplotlib。我看到了很多解决方案,但我正在努力将它们与我的需求联系起来。我想我可能需要重新开始。让我们看看你的想法 我有一个数据帧(ephem),有4列-时间,日期,高度,方位 我使用以下方法为alt和az生成散射: chart = plt.scatter(ephem.Azimuth, ephem.Altitude, marker='x', color='black', s=8) 将时间列中的值设置为x轴上的标签/记号的最有效方法是什么 因此: 比例/网

今天,我正努力用数据帧来理解matplotlib。我看到了很多解决方案,但我正在努力将它们与我的需求联系起来。我想我可能需要重新开始。让我们看看你的想法

我有一个数据帧(ephem),有4列-时间日期高度方位

我使用以下方法为altaz生成散射:

chart = plt.scatter(ephem.Azimuth, ephem.Altitude, marker='x', color='black', s=8)
时间列中的值设置为x轴上的标签/记号的最有效方法是什么

因此:

  • 比例/网格线等都保持不变
  • 图表仍然绘制altaz
  • y轴标记/标签保持原样
  • 只有x轴标记/标签更改为时间列。

谢谢

这绝对不是最干净的代码,但以下代码对我很有用:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.scatter(ephem.Azimuth, ephem.Altitude, marker='x', color='black', s=8)
labels = list(ephem.Time)
ax.set_xticklabels(labels)
plt.show()

在这里,您将显式地强制将setxticklabel设置为您所拥有的dataframe Time列

换句话说,您希望使用值列表更改x轴刻度标签

labels=ephem.Time.tolist()
#在调用plt.show()之前进行绘图
#插入以下两行
ax=plt.gca()
ax.设置标签(标签=标签)
plt.show()

换句话说,您希望“使用值列表更改轴标签”。您想使用ax.setxticklabels(),其中ax=plt.gca()。在不设置记号位置的情况下,切勿设置记号标签!!在未设置记号位置的情况下,切勿设置记号标签!!