gpt4 book ai didi

r - 左调整 (hjust = 0) 垂直 x 轴标签在具有自由比例的小平面上

转载 作者:行者123 更新时间:2023-12-03 15:21:22 24 4
gpt4 key购买 nike

I have decided to rephrase this question . (编辑会花费更多时间,在我看来也不会帮助 OP。)

scale = 'free_x' 时,如何左调整(hjust = 0, 即文本方向 ) ?

我真的不认为 x 标签的左调整是一件非常必要的事情(长标签通常难以阅读,右调整可能是更好的选择) - 但我发现这个问题足够有趣。

我尝试使用空填充到最大字符长度,但这不会导致所有字符串的长度相同。另外,设置 axis.text.x = element.text(margin = margin())没有帮助。不用说,hjust = 0没有帮助,因为它正在每个方面进行调整。

library(ggplot2)

diamonds$cut_label <- paste("Super Dee-Duper", as.character(diamonds$cut))

ggplot(data = diamonds, aes(cut_label, carat)) +
facet_grid(~ cut, scales = "free_x") +
theme(axis.text.x = element_text(angle = 90))

enter image description here

红色箭头和虚线表示标签应如何调整。 hjust = 0margins或空填充不会导致在所有方面调整这些标签。

Data modification from this famous question

最佳答案

I tried with empty padding to the maximum character length, but this doesn't result in the same length for all strings.



这引起了我的注意。实际上,如果用空格填充标签,使它们的长度相同,并确保字体系列为 ,那么所有字符串的长度都会相同。不成比例的间隔 .

首先,用空格填充标签,使所有标签具有相同的长度。我要使用 str_pad来自 的函数纵梁包裹。
library(ggplot2)

data("diamonds")

diamonds$cut_label <- paste("Super Dee-Duper", as.character(diamonds$cut))

library(stringr)
diamonds$cut_label <- str_pad(diamonds$cut_label, side="right",
width=max(nchar(diamonds$cut_label)), pad=" ")

然后,您可能需要使用 加载非按比例间隔的字体。 extrafont 包裹。
library(extrafont)
font_import(pattern='consola') # Or any other of your choice.

然后,运行 ggplot 命令并使用 family 指定按比例间隔的字体。争论。
ggplot(data = diamonds, aes(cut_label, carat)) +
facet_grid(~cut, scales = "free_x") +
theme(axis.text.x = element_text(angle = 90, family="Consolas"))

enter image description here

关于r - 左调整 (hjust = 0) 垂直 x 轴标签在具有自由比例的小平面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60682885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com