设置 seaborn 联合图的轴刻度值

Setting the axes tick values of a seaborn jointplot

我正在尝试使我的联合图的 x 轴和 y 轴(包括轴刻度值)以特定值开始和结束,并以设定的增量进行缩放。

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

g = sns.jointplot(x="LONGITUDE", y="LATITUDE", data=data,
                      kind='reg', color="#774499", dropna=True, size=7, space=0.3, ratio=5,
                      xlim=(-180,180), ylim=(-90,90), fit_reg=False);
plt.rc("legend", fontsize=15)
plt.xlabel('Longitude', fontsize=15)
plt.ylabel('Latitude', fontsize=15)
plt.title('Spatial Location Plot', fontsize=15 )
plt.tick_params(axis="both", labelsize=15)

请注意,两个轴的下边缘和上边缘都没有任何刻度值。我希望刻度值使用我在 xlim() 和 ylim() 中指定的值在轴边缘开始和结束。

我的首选增量分别是 X 轴和 Y 轴的 90 度和 45 度。所以,我希望 X 轴看起来像这样:-180、-90、0、90、180。 Y 轴为:-90、-45、0、45、90。感谢您的建议。

您可以使用 matplotlib.ticker 在坐标轴上设置 major_locatorjointplot (g) 返回的 JointGrid 有一个 ax_joint 属性,我们可以用它来设置刻度。要设置每个数字倍数的刻度,我们可以使用 MultipleLocator:

import matplotlib.ticker as ticker
g.ax_joint.xaxis.set_major_locator(ticker.MultipleLocator(90))
g.ax_joint.yaxis.set_major_locator(ticker.MultipleLocator(45))