ggplot2 交互只使用第一个字符
ggplot2 interaction use only first character
在一个项目中,我展示了条形图并使用交互命令对组进行排序,因为一个是另一个的严格子组。我不想打印出第一组的全名,因为这会占用很多 space。有没有办法将单词限制为第一个字符或类似的字符?
mtcars$name <- rownames(mtcars)
ggplot(data = mtcars, aes(x=interaction(mtcars$cyl, mtcars$name)))+
geom_bar()+
theme(axis.text.x = element_text(angle = 90, hjust = 1,vjust = 0.5))
例如这里只有#cylinders 对我来说很有趣,我只是用车名来订购它们。但是他们占了很多space。只写汽车的第一个字母是理想的。所以我想以 8.A 为例。在我的原始数据中,第一个变量具有不同的长度(不仅仅是 #cylinder 此处的 1 个字符)
感谢您的回答,
此致
您可以在 scale_x_discrete
中使用正则表达式编辑标签:
library(ggplot2)
ggplot(data = mtcars, aes(x=interaction(mtcars$cyl, mtcars$name)))+
geom_bar()+
xlab('Interaction cyl vs Name') +
theme(axis.text.x = element_text(angle = 90, hjust = 1,vjust = 0.5)) +
scale_x_discrete(labels = function(x) sub('(\..).*', '\1', x))
()
中的所有内容都称为捕获组,我们在其中指定要保留的文本部分。在这里,我们提到我们想要保留所有内容,直到一个点(即 \.
,.
是正则表达式中的一个特殊字符,需要使用 \
进行转义)后跟另一个字符(.
).
在一个项目中,我展示了条形图并使用交互命令对组进行排序,因为一个是另一个的严格子组。我不想打印出第一组的全名,因为这会占用很多 space。有没有办法将单词限制为第一个字符或类似的字符?
mtcars$name <- rownames(mtcars)
ggplot(data = mtcars, aes(x=interaction(mtcars$cyl, mtcars$name)))+
geom_bar()+
theme(axis.text.x = element_text(angle = 90, hjust = 1,vjust = 0.5))
例如这里只有#cylinders 对我来说很有趣,我只是用车名来订购它们。但是他们占了很多space。只写汽车的第一个字母是理想的。所以我想以 8.A 为例。在我的原始数据中,第一个变量具有不同的长度(不仅仅是 #cylinder 此处的 1 个字符)
感谢您的回答, 此致
您可以在 scale_x_discrete
中使用正则表达式编辑标签:
library(ggplot2)
ggplot(data = mtcars, aes(x=interaction(mtcars$cyl, mtcars$name)))+
geom_bar()+
xlab('Interaction cyl vs Name') +
theme(axis.text.x = element_text(angle = 90, hjust = 1,vjust = 0.5)) +
scale_x_discrete(labels = function(x) sub('(\..).*', '\1', x))
()
中的所有内容都称为捕获组,我们在其中指定要保留的文本部分。在这里,我们提到我们想要保留所有内容,直到一个点(即 \.
,.
是正则表达式中的一个特殊字符,需要使用 \
进行转义)后跟另一个字符(.
).