亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

x 刻度和標簽的自定義定位

x 刻度和標簽的自定義定位

犯罪嫌疑人X 2023-12-09 15:50:35
對于簡單的條形圖,我希望一些 x 刻度標簽位于 x 軸下方(對于正 y 值),而其他標簽位于 x 軸上方(對于負 y 值)。我看到,根據文檔,可以將字符串作為參數傳遞以matplotlib.axes.Axes.set_xticklabel更改垂直對齊方式,但這是一個籠統的應用程序。如何實現特定 x-tick 標簽的任意定位?
查看完整描述

1 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

您可以修改 for 循環中標簽的位置/旋轉。最初,我認為更改旋轉點就足夠了,但標簽固定在刻度線的尖端,因此結果不是最佳的。


這是我的代碼。您可能需要調整 y 位置的正負以獲得所需的對齊方式:


N = 10

h = np.linspace(-10,10,N)

xticks = [f'test #{n}' for n in range(N)]


fig, ax = plt.subplots()

ax.spines['bottom'].set_position('zero')

ax.bar(range(N),h)

ax.set_xticks(range(N))

ax.set_xticklabels(xticks)


for i,(g,t) in enumerate(zip(h,ax.get_xticklabels())):

    if g<0:

        t.set_ha('left')

        t.set_va('bottom')

    else:

        t.set_ha('right')

        t.set_va('top')

    t.set_rotation_mode('anchor')

    t.set_rotation(45)

    t.set_transform(ax.transData)

    t.set_position((i,0))

https://img1.sycdn.imooc.com/65741c71000198f605920440.jpg

查看完整回答
反對 回復 2023-12-09
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號