gpt4 book ai didi

r - 如何将 vline 添加到 facet_grid 中的所有图形?

转载 作者:行者123 更新时间:2023-12-02 01:33:29 27 4
gpt4 key购买 nike

我正在处理波士顿数据集,并试图查看 8 个房间的数据在每个图表上的位置。我已经注释掉了给我错误的那一行。

我必须在对应于 rm = 8 的所有点处添加垂直线,以便在网格的每个图形中查看数据的分布。我想知道:1.我做错了什么。2. 找到/表示 rm = 8 的数据点的更好方法。

library(ggplot2)
library(reshape2)
library(MASS)
library(data.table)

data("Boston")
Boston <- as.data.table(Boston)

molten_boston <- Boston[, `:=`(rm = round(rm),
nox = nox * 100,
chas = chas * 10)]
molten_boston <- melt(data = molten_boston, id.vars = "rm")

comments_bar <- ggplot(molten_boston) +
geom_bar(binwidth = 1, aes(x = value), color = "black", fill = "salmon") +
# geom_vline(data = molten_boston[rm == 8, .SD, by = variable, .SDcols = "value"], aes(xintercept = value)) +
facet_wrap(~ variable, scales = "free")
print(comments_bar)

最佳答案

另一个可视化是堆叠条形图,大的时候看起来还不错:

molten_boston$EightRooms <- as.factor(molten_boston$rm == 8)
molten_boston$EightRooms <- relevel(molten_boston$EightRooms, 2)

ggplot(molten_boston, aes(x = value, fill = EightRooms)) +
geom_bar(binwidth = 1, color = "black") +
facet_wrap(~ variable, scales = "free")

enter image description here

在背景中使用密度图会很好,但由于 y 轴的变化,在这种情况下有点棘手。你可能需要做一些预先计算。这是我的最佳尝试:

ggplot(molten_boston, aes(x = value)) + 
geom_density(data = subset(molten_boston, rm == 8), aes(y =..density.. * 300),
fill = 'blue', alpha = 0.5) +
geom_bar(binwidth = 1, color = "black", fill = "salmon", alpha = 0.5) +
facet_wrap(~ variable, scales = "free")

enter image description here

关于r - 如何将 vline 添加到 facet_grid 中的所有图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32682243/

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