簡體   English   中英

matplotlib中的圖內的刻度標簽

[英]Ticklabels inside a plot in matplotlib

我有一個條形圖,“ y”軸上的刻度標簽在外面。 示例但是,我希望條形圖內的ylabel左對齊。 有沒有辦法做到這一點? 這是代碼:

fig, ax = plt.subplots()

# Example data
people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))
error = np.random.rand(len(people))

ax.barh(y_pos, performance, xerr=error, align='center',
        color='green', ecolor='black')
ax.set_yticks(y_pos)
ax.set_yticklabels(people)
ax.invert_yaxis()  # labels read top-to-bottom
ax.set_xlabel('Performance')
ax.set_title('How fast do you want to go today?')

plt.show()

如果我玩tick_params:

ax.tick_params(axis='y', direction='in',pad=-5)

我懂了

這個

這不是我想要的,因為文本在下面,並且仍然在右邊對齊。

這是設置正確參數的問題。

  • 已為刻度標簽設置了對齊方式,

     ax.set_yticklabels(people, horizontalalignment = "left") 
  • 填充需要大得多,例如pad = -15才能使標簽位於軸內。

這已經可以為您提供所需的圖形。

在此處輸入圖片說明

但是,由於您似乎使用的是seaborn-darkgrid樣式,因此標簽在欄后面。 要把它們放在前面,您可以設置,

plt.rcParams["axes.axisbelow"] = "line"

另外, 關閉y網格可能是有意義的,否則將貫穿文本標簽。

plt.rcParams["axes.grid.axis"] ="x"

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM