import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
labels1 = ['A','B','C','D']
labels2 = ['E','F','G','H']
fig, ax = plt.subplots()
df = pd.DataFrame(np.random.random(size=(10,4)), columns=('A','B','C','D'))
sns.stripplot(data=df, orient='h', ax=ax)
ax2 = ax.twinx()
ax2.set(yticks=ax.get_yticks(), yticklabels=labels2);
我想在辅助y轴上生成一些标签,这些标签与主y轴上的stripplot的y轴标记对齐。我希望E与D,F和C等处于同一高度。
我尝试了一些不同的方法来对齐蜱,但没有运气。
有关如何添加这些标签的任何其他建议都有助于接受。
答案 0 :(得分:1)
已使用正确设置了刻度线
ax2.set(yticks=ax.get_yticks(), yticklabels=labels2)
。缺少的是轴的极限。两个轴必须相同。
您可以使用
ax2.set_ylim(ax.get_ylim())
或与.set
:
ax2.set(yticks=ax.get_yticks(), yticklabels=labels2, ylim=ax.get_ylim())
完整示例:
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
labels1 = ['A','B','C','D']
labels2 = ['E','F','G','H']
fig, ax = plt.subplots()
df = pd.DataFrame(np.random.random(size=(10,4)), columns=('A','B','C','D'))
sns.stripplot(data=df, orient='h', ax=ax)
ax2 = ax.twinx()
ax2.set(yticks=ax.get_yticks(), yticklabels=labels2, ylim=ax.get_ylim())
plt.show()