gpt4 book ai didi

r - geom_point : Put overlapping points with highest values on top of others

转载 作者:行者123 更新时间:2023-12-04 18:12:02 25 4
gpt4 key购买 nike

我正在使用 geom_point 可视化面板数据集哪里y = var1 , x = year , 和 color = var2 .问题是有很多重叠点,即使有水平抖动。

减少点大小或设置低 alpha 值是不可取的,因为两者都会减少第二个变量的视觉影响,第二个变量具有很长的右偏斜。我希望 ggplot 放置具有最高值的点 var2在所有其他重叠点之上。

可重现的例子:

df <- data.frame(diamonds)

ggplot(data = df,aes(x=factor(cut),y=carat,colour=price)) +
geom_point(position=position_jitter(width=.4))+
scale_colour_gradientn(colours=c("grey20","orange","orange3"))

如何将最高值的点放在 df$price 中在重叠的点堆上?

最佳答案

看起来好像是按数据顺序绘制的网格图,

library(grid)

d <- data.frame(x=c(0.5,0.52),y=c(0.6,0.6), fill=c("blue","red"),
stringsAsFactors=FALSE)

grid.newpage()
with(d,grid.points(x,y,def='npc', pch=21,gp=gpar(cex=5, fill=fill)))
with(d[c(2,1),], grid.points(x,y-0.2,def='npc', pch=21,
gp=gpar(cex=5, fill=fill)))

所以我建议你先重新排序你的 data.frame,并祈祷 ggplot2 不会弄乱它:)
library(ggplot2)
library(plyr)
df <- diamonds[order(diamonds$price, decreasing=TRUE), ]
# alternative with plyr
df <- arrange(diamonds, desc(price))
last_plot() %+% df

关于r - geom_point : Put overlapping points with highest values on top of others,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805354/

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