python - 更改 y 轴刻度 - FacetGrid
问题描述
我无法弄清楚如何更改 y 轴的比例。我的代码是:
grid = sns.catplot(x='Nationality', y='count',
row='Age', col='Gender',
hue='Type',
data=dfNorthumbria2, kind='bar', ci='No')
我只想增加全数而不是 0.5
解决方案
更新
我刚刚发现本教程可能最简单的解决方案如下:
grid.set(yticks=list(range(5)))
从帮助grid.set
Help on method set in module seaborn.axisgrid:
set(**kwargs) method of seaborn.axisgrid.FacetGrid instance
Set attributes on each subplot Axes.
由于 seaborn 是在 matplotlib 之上构建的,因此您可以使用plt中的yticks
import matplotlib.pyplot as plt
plt.yticks(range(5))
然而,这仅改变了我的模型示例中上排的 yticks。
出于这个原因,您可能希望根据轴更改 y 刻度ax.set_yticks()
。要从grid
对象中获取轴,您可以实现列表理解,如下所示:
[ax[0].set_yticks(range(0,150,5) )for ax in grid.axes]
一个完整的可复制示例如下所示(改编自此处)
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
grid = sns.catplot(x="time", y="pulse", hue="kind",
row="diet", data=exercise)
# plt.yticks(range(0,150,5)) # Changed only one y-axis
# Changed y-ticks to steps of 20
[ax[0].set_yticks(range(0,150,20) )for ax in grid.axes]
推荐阅读
- c# - 从字典返回差异
- android - 如何修复按钮中的错误意图和音效?
- django - 502 Bad Gateway nginx/1.14.0 (Ubuntu) digitalocean vps django、nginx 和 gunicorn
- python - 如何在两个数据库之间插入公共字段的值
- django - django 抛出“AppRegistryNotReady:应用程序尚未加载。” 导入视图时
- asp.net - 如何访问实体框架外键对象
- command-line - P4 如何将文件签出到指定更改列表?(使用命令行)
- tomcat - HTTP 状态 500 – 在 tomcat 中部署 war 文件时出现内部服务器错误
- c++ - 如何正确地为 ncurses 进行 epoll
- file - 无法通过 CStdioFile 将中文字符写入 ANSI 文件?