gpt4 book ai didi

r - 我如何说服 ggplot2 为我创造一个传奇?

转载 作者:行者123 更新时间:2023-12-04 10:27:06 24 4
gpt4 key购买 nike

我已经设法让 ggplot2 从数据集中创建几乎我想要的图,但我不知道如何标记我的点。

鉴于数据看起来像这样:

sample <- data.frame(rowid=seq(100), a=runif(100), b=runif(100, .5, 1.5))

我可以像这样创建一个比较这两件事的图(鉴于我的真实和更好的标签看起来不那么有趣,但这确实是一个很好的近似值):
ggplot(data=sample) + 
geom_point(aes(rowid, a), color="#990000", alpha=0.4) +
geom_smooth(aes(rowid, a), color='#990000') +
geom_point(aes(rowid, b), color='#000099', alpha=0.4) +
geom_smooth(aes(rowid, b), color='#000099') +
labs(x='Trial', y='Time')

我怎样才能让图例显示红色和蓝色是什么?

编辑

感谢 baptiste 的评论,我现在有以下几点:
wide = melt(sample, id="rowid")

ggplot(data=wide) +
geom_point(aes(rowid, value, color=variable), alpha=0.1) +
scale_alpha(0.3) +
scale_colour_manual(name="Variables", values=c("b"="#990000", "a"="#000099")) +
geom_smooth(aes(rowid, value, color=variable)) +
labs(x='Trials', y='Time')

最佳答案

Baptiste 建议使用 melt,为您指明了正确的方向。来自 reshape2包裹。

要单独控制点的 alpha 并使其更平滑,只需在每个 geom 中指定您想要的 alpha。请注意 scale_alpha您的示例代码中的语句什么都不做,因为 alpha 没有映射到任何美学,所以我删除了它。此外,由于您的映射与所有图层相同,因此更容易在 ggplot 中指定。参数而不是几何参数:

sample <- data.frame(rowid=seq(100), a=runif(100), b=runif(100, .5, 1.5))
wide = melt(sample, id="rowid")

ggplot(data=wide, aes(x=rowid, y=value, color=variable)) +
geom_point(alpha=0.1) +
scale_colour_manual(name="Variables", values=c("b"="#990000", "a"="#000099")) +
geom_smooth(alpha=0.8) +
labs(x='Trials', y='Time')

enter image description here

关于r - 我如何说服 ggplot2 为我创造一个传奇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7156477/

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