gpt4 book ai didi

r - 如何在独立层的ggplot中缩放颜色?

转载 作者:行者123 更新时间:2023-12-01 10:59:18 27 4
gpt4 key购买 nike

我有一个记录三座建筑物的能源使用情况的数据集。我有一个可以从钻石组中模仿的融化数据框:

data <- melt(diamonds[,c('depth','table','cut','color')],id=c('cut','color'))

基本上,我有来自三个不同建筑物(7 个“颜色”因素)的每个月(“切割”)的供暖(“深度”)和制冷(“表格”)数据。我想在每个月的条形图中并排绘制三座建筑物(7 个“颜色”因素)(“剪切”)。

我希望代表冷却(“ table ”)或加热(“深度”)的条形根据建筑物(“颜色”因素)改变它们的阴影,同时保持按月分组(“切割”)。这是可视化钻石数据的一种糟糕方式,但对于建筑物应该很有效,因为它们的加热和冷却月份通常不会重叠。到目前为止,我有:

p <- ggplot(data,
aes(color,value,group=cut))
p <- p + geom_bar(stat = 'identity',
position = 'dodge',
aes(fill = variable))
print(p)

我尝试使用 scale_fill_manual,但想不出可行的策略:

colours <- c('#0000FF', '#0033FF', '#0066FF', '#FF0000', '#FF3300', '#FF6600')

p <- p + scale_fill_manual(values = colours,
group = data$variable)

最佳答案

通过一些技巧,这是可能的。基于钻石导出数据集非常好,但我想使用更小的数据集

set.seed(1234)
data <-
expand.grid(month = month.abb,
building = c("Building A", "Building B", "Building C"),
hc = c("Heating", "Cooling"))
data$value <- rnorm(nrow(data), 60, 10)

您希望填充颜色基于变量 (hc) 和建筑物 (building),因此将其设置为该交互。

ggplot(data, aes(building,value,group=month)) + 
geom_bar(stat = 'identity',
position = 'dodge',
aes(fill = interaction(building, hc)))

enter image description here

我们可以选择代表不同近色的颜色,使它们更像您想要的。我使用了 RColorBrewer 调色板的中间“Blues”和“Reds”。

colours <- c("#FC9272", "#FB6A4A", "#EF3B2C", "#9ECAE1", "#6BAED6", "#4292C6")
# library("RColorBrewer")
# colours <- c(brewer.pal(9,"Reds")[4:6], brewer.pal(9,"Blues")[4:6])

并使用 scale_fill_manual 分配这些颜色。

ggplot(data, aes(building,value,group=month)) + 
geom_bar(stat = 'identity',
position = 'dodge',
aes(fill = interaction(building, hc))) +
scale_fill_manual(values=colours)

enter image description here

真正的诡计在于让图例不那么复杂。我只列出了其中的 2 个级别(就颜色而言是中间的建筑物)并给它们不同的名称(以及不同的图例标题)。

ggplot(data, aes(building,value,group=month)) + 
geom_bar(stat = 'identity',
position = 'dodge',
aes(fill = interaction(building, hc))) +
scale_fill_manual("Heating/cooling",
values=colours,
breaks=c("Building B.Heating", "Building B.Cooling"),
labels=c("Heating", "Cooling"))

enter image description here

关于r - 如何在独立层的ggplot中缩放颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12716752/

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