簡體   English   中英

旋轉Matplotlib寄生圖中的x軸標簽

[英]Rotate x axis labels in Matplotlib parasite plot

在Thomas非常有幫助地解決了我在問題中制作兩個寄生子圖的問題之后 ,我現在嘗試旋轉子圖上的x軸標簽。

不幸的是,我對此處示例代碼的修改似乎對x軸標簽沒有影響:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA

host = host_subplot(111, axes_class=AA.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

offset = 60
new_fixed_axis = par2.get_grid_helper().new_fixed_axis
par2.axis["right"] = new_fixed_axis(loc="right",
                                    axes=par2,
                                    offset=(offset, 0))

par1.axis["right"].toggle(all=True)
par2.axis["right"].toggle(all=True)

host.set_xlim(0, 2)
host.set_ylim(0, 2)

host.set_xlabel("Distance")
host.set_ylabel("Density")
par1.set_ylabel("Temperature")
par2.set_ylabel("Velocity")

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

par1.set_ylim(0, 4)
par2.set_ylim(1, 65)

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right"].label.set_color(p3.get_color())

plt.xticks(rotation = 45) #<- The only change from the example

plt.draw()
plt.show()  

在以下位置給出未旋轉的x軸標簽:

產量

盡管我已經展示了plt.xticks(rotation = 45) ,但我也嘗試了其他與“常規” matplotlib繪圖一起使用的方法,但plt.xticks(rotation = 45)成功。 有誰知道是否有辦法做到這一點,還是我只是在處理過多的小眾案件? 也許我應該找出一種使用子圖且沒有寄生軸的方法?

非常感謝Alex

有兩種產生寄生蟲軸的方法:

在這里,您使用的是第一種方法,由於使用axisartist工具包提供的特殊軸,因此可能有點不直觀。

解決方案1:

使用通常的子圖方法,所有常規的刻度線旋轉方法都可以正常工作,例如

plt.setp(ax.get_xticklabels(), rotation=90)

解決方案2:

如果您要堅持使用mpl_toolkits方法,則需要通過axis["right"].major_ticklabelsaxis獲取刻度axis["right"].major_ticklabels

plt.setp(par2.axis["bottom"].major_ticklabels, rotation=-135)

暫無
暫無

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

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