2015-12-10 571 views
2

我試圖讓我的jointplot的x和y軸(包括座標軸刻度值)以特定值開始和結束,並以設置的增量縮放。設置seaborn jointplot的軸刻度值

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) 

This is what I get

注意,兩個軸的上下邊緣沒有任何蜱值。我希望刻度值以xlim()和ylim()中指定的值爲準,開始和結束於軸邊緣。

我的首選增量分別是X軸和Y軸的90度和45度。所以,我想讓X軸看起來如下:-180,-90,0,90,180。 而Y軸爲:-90,-45,0,45,90。感謝您的建議。

回答

2

您可以使用matplotlib.ticker在軸上設置major_locator。由jointplotg)返回的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)) 
+0

謝謝。我添加了代碼行,但得到了這個錯誤信息。 g.ax_joint.xaxis.set_major_locator(ticker.MultipleLocator(90)) NameError:name'ticker'is not defined –

+0

嗨,湯姆,我嘗試了另一種正在工作的方法。 plt.xticks(np.arange(-180,180 + 90,90))和 plt.yticks(np.arange(-90,90 + 45,45))但是,我仍然對學習如何實現你的建議。 –

+0

對不起,忘了說'import matplotlib.ticker as ticker' – tom