gpt4 book ai didi

r - 在scale_shape_manual中分配40个或更多形状

转载 作者:行者123 更新时间:2023-12-03 09:45:38 32 4
gpt4 key购买 nike

我有一个具有40多个因子水平的数据框,我想为每个水平分配不同的形状。但是,如ggplot2scale_shapes_table所示,我只能分配其中的26个,以及一些!"#等。

enter image description here

但我知道在python或jmp中,您可以分配许多形状(例如星号,左三角形,直三角形,矩形等)。 ggplot2也可能吗?

data=data.frame(gr=seq(1,40), x1=runif(40), y1=runif(40))
library(ggplot2)
ggplot(data=data,aes(x=x1,y=y1,shape=factor(gr),col=factor(gr)))+
geom_point(alpha = 0.3,size=4,stroke=1.4) +
scale_shape_manual(values=c(0:40))

enter image description here

最佳答案

使用带有Font Awasome的emojifont包,可以获得大量符号(请参阅完整列表here)。给出更多细节here

library(ggplot2)
library(emojifont)
set.seed(1234)
symbls <- c('fa-github', 'fa-binoculars', 'fa-twitter', 'fa-android', 'fa-coffee',
'fa-cube', 'fa-ambulance','fa-check','fa-cutlery','fa-cogs','fa-dot-circle-o','fa-car',
'fa-building','fa-fire', 'fa-flag','fa-female','fa-gratipay','fa-heart','fa-magnet',
'fa-lock','fa-map','fa-puzzle-piece','fa-shopping-cart','fa-star','fa-sticky-note',
'fa-stop-circle-o','fa-volume-down','fa-anchor', 'fa-beer','fa-book','fa-cloud',
'fa-comment','fa-eject','fa-chrome','fa-child','fa-bomb', 'fa-certificate',
'fa-desktop','fa-fire-extinguisher','fa-diamond')
idx <- order(symbls)
fa <- fontawesome(symbls)
k <- length(fa)
data=data.frame(gr=factor(fa, levels=fa[idx]), x1=runif(k), y1=runif(k))
data$gr <- factor(data$gr, levels=fa[idx])

ggplot(data, aes(x1, y1, colour=gr, label=gr)) +
xlab(NULL) + ylab(NULL) + geom_point(size=-1) +
geom_text(family='fontawesome-webfont', size=6, show.legend=FALSE) +
theme(legend.text=element_text(family='fontawesome-webfont')) +
scale_colour_discrete("Points",guide=guide_legend(override.aes=list(size=4)))

enter image description here

警告:如果要使用Rstudio中的代码,请首先重新分配绘图设备,如下所示:
devtools::install_github("coatless/balamuta")
library("balamuta")
external_graphs()

关于r - 在scale_shape_manual中分配40个或更多形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46803260/

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