gpt4 book ai didi

r - 使用具有归一化值的 geom_scatterpie 和 geom_scatterpie_legend 创建图

转载 作者:行者123 更新时间:2023-12-03 10:12:42 44 4
gpt4 key购买 nike

我正在尝试使用 R 中的 scatterpie 包创建一个散点图。我的数据看起来像这样

  EEE Innovation n equal negative positive     n_mod
0 0 2 NA 2 NA 0.3162278
0 1 6 4 2 NA 0.5477226
0 2 1 NA 1 NA 0.2236068
0 3 2 NA 2 NA 0.3162278
0 5 1 1 NA NA 0.2236068
1 0 4 2 1 1 0.4472136
1 1 14 4 5 5 0.5916080
1 2 9 3 2 4 0.4743416
1 3 1 NA 1 NA 0.1581139
1 5 1 NA 1 NA 0.1581139
2 1 3 NA 2 1 0.2738613
3 0 1 NA 1 NA 0.1581139
3 1 3 1 2 NA 0.2738613
3 2 4 NA 2 2 0.3162278
4 0 3 2 1 NA 0.2738613
4 1 14 5 3 6 0.5916080
4 2 14 4 NA 10 0.5916080

为了创建我的情节,我使用这个命令:

ggplot() + 
geom_scatterpie(aes(x=EEE,y=Innovation, r = n_mod), data=pie_data,
cols=c("equal","negative","positive")) +
geom_scatterpie_legend((all_pie_data$n_mod), n=7,
labeller= function(x) x=sort(unique(pie_data$n)))

我用的是我得到的n_mod

for (l in 1:17) {
all_pie_data$n_mod[l] <- sqrt(all_pie_data$n[l]/40)
}

而不是 n 作为半径,因为馅饼的半径对于我的图表来说太大了,而且较小的馅饼会被较大的馅饼掩埋。对于图例,我想要 n_mod 的半径,但带有“真实”n 值的标签。当我尝试创建此图时,我收到以下错误消息:

Error in $<-.data.frame(*tmp*, "label", value = c(1L, 2L, 3L, 4L,  : 
replacement has 7 rows, data has 5

如果我在我的 n_mod 创建中使用低于 24 的值,则不会出现此错误:

for (l in 1:17) {
all_pie_data$n_mod[l] <- sqrt(all_pie_data$n[l]/24)
}

由此生成的馅饼对于我的图表来说仍然太大了:

enter image description here

有没有人知道我可以如何解决这个问题或创建更小的馅饼的其他方法?

P.S:这是我的第一个问题,如果我在格式方面做错了什么或缺少任何信息,我愿意改进!

最佳答案

您可以将“r”设置为:

r = n_mod/2

这应该让它们看起来更小。

ggplot() + 
geom_scatterpie(aes(x=EEE,y=Innovation, r = n_mod/2), data=pie_data,
cols=c("equal","negative","positive")) +
geom_scatterpie_legend((all_pie_data$n_mod), n=7,
labeller= function(x) x=sort(unique(pie_data$n)))

关于r - 使用具有归一化值的 geom_scatterpie 和 geom_scatterpie_legend 创建图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45663111/

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