首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在具有共享轴的海运配对图中显示y_ticklabels

在具有共享轴的海运配对图中显示y_ticklabels
EN

Stack Overflow用户
提问于 2015-06-27 23:05:53
回答 3查看 3.7K关注 0票数 4

我使用海运配对来绘制几个自变量对应于一个因变量。

代码语言:javascript
复制
import seaborn as sns
iris = sns.load_dataset("iris")
x_vars = ['sepal_length', 'sepal_width', 'petal_length']
y_vars = ['petal_width']
pp = sns.pairplot(data=iris, x_vars=x_vars, y_vars=y_vars)

现在,我想在第二个和第三个子图中添加y轴刻度和标签。

添加y轴标签很容易:

代码语言:javascript
复制
pp.set(ylabel='petal_width')

但在我的一生中,我想不出如何展示y_ticklabels。

比如:

代码语言:javascript
复制
pp.set(yticklabels=np.arange(-0.5, 3.01, 0.5))

或者:

代码语言:javascript
复制
for i in range(3):
    ax = pp.axes[0,i]
    ax.set_yticks(np.arange(-0.5, 3.01, 0.5))
    ax.set_yticklabels(np.arange(-0.5, 3.01, 0.5))
    ax.set_visible(True)

没什么区别。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-29 21:03:41

只需将yticklabels转回可见,您就可以在所需的子图中进行:

代码语言:javascript
复制
import seaborn as sns
iris = sns.load_dataset("iris")
x_vars = ['sepal_length', 'sepal_width', 'petal_length']
y_vars = ['petal_width']
pp = sns.pairplot(data=iris, x_vars=x_vars, y_vars=y_vars)
_ = plt.setp(pp.axes[0,1].get_yticklabels(), visible=True) #changing the 2nd plot

这里的_ = ...是为了在交互环境中禁止不必要的打印。

票数 3
EN

Stack Overflow用户

发布于 2019-05-06 05:56:49

3.0.3是我的matplotlib版本,CT朱的答案对我没有用,我也不知道为什么。

我找到了答案,这里

您可以在所需的子图上使用tick_params方法通过传递yticklabels参数来显示labelleft=True。(有两种方法)

代码语言:javascript
复制
"""enabling yticklabels for all subplots"""

import seaborn as sns
iris = sns.load_dataset("iris")
x_vars = ['sepal_length', 'sepal_width', 'petal_length']
y_vars = ['petal_width']
pp = sns.pairplot(data=iris, x_vars=x_vars, y_vars=y_vars)

# iterating over all subplots
for ax in pp.axes.flat:
    # labelleft refers to yticklabels on the left side of each subplot
    ax.tick_params(axis='y', labelleft=True) # method 1
    # ax.yaxis.set_tick_params(labelleft=True) # method 2
plt.show()

来自tick_params 文档

更改滴答、勾标和网格线的外观。

票数 1
EN

Stack Overflow用户

发布于 2021-10-20 13:49:39

将共享设置为False,将分别出轴标签P.S -只是共享我的用例中的一个示例代码-

代码语言:javascript
复制
fig, ax =plt.subplots(1,2,figsize=(15, 5), sharey=False)

fig.suptitle('Sentiment scores - comparison')

sns.countplot(df['Sentiment'], ax=ax[0])

sns.countplot(df['new_sentiment'], ax=ax[1])

fig.show()

输出结果如下-

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31094436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档