gpt4 book ai didi

r - ggplot2 在列之间创建不均匀的间距

转载 作者:行者123 更新时间:2023-12-03 01:41:25 25 4
gpt4 key购买 nike

我正在尝试制作热图,可视化随时间变化的各种类别的事件。我为此目的使用了 geom_tile,乍一看它工作得很好。

enter image description here

但是仔细观察上面的图表,列之间的间距非常不均匀。 x 轴是日期,y 轴是一个因素,因此没有充分的理由说明图 block 的宽度应该进行调整。

我尝试使用 aes(width=X) 更改图 block 的宽度,但这并不能解决问题。

使用了绘图代码,其中我删除了我确信不会影响此问题的元素:

ggplot(monthlyEvents, aes(x=YearMonth, y=EventType, fill=EventRate)) + geom_tile(colour=bgcolor) + 
scale_x_date(breaks = date_breaks("1 month"), labels=date_format("%b %Y"), expand = c(0,0)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.background=element_rect(fill=bgcolor, colour=bgcolor), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), panel.border = element_blank()) +
scale_fill_gradientn(colours=palette, na.value="grey39")

最佳答案

为了其他前来查找的人,我将添加此问题的答案。

事实证明,当您使用 date_breaks("1 Month") 将日期绘制为月份时,它实际上并没有在 X 轴上使用月份间隔。 X 轴仍然是日期。这意味着月份的间隔会不均匀,因为不同月份的天数不同。

为了解决这个问题,我使用上面使用的漂亮样式将日期格式化为因子,使用

niceFormatting <- format(events$YearMonth, "%Y %b")
MonthFactor <- factor(niceFormatting, levels = niceFormatting)

使用 MonthFactor 作为 X 轴进行绘图,结果符合我的预期。没有所有格式:

ggplot(monthlyEvents, aes(x=MonthFactor, y=EventType, fill=EventRate)) + geom_tile(colour=bgcolor)

关于r - ggplot2 在列之间创建不均匀的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288511/

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