我试图重现我在卡洛斯·德拉戈的一篇论文中发现的一个情节(幻灯片#13)。但是我被卡住了。附件是一张情节的图像。我对做右边的图很感兴趣。我搜索了Stackoverflow,但没有找到解决方案。堆栈溢出中的大多数直方图问题都是关于多个直方图相互重叠的。在这种情况下,它是按日期索引的独立直方图的旋转90度。如果可能,我想将时间序列(左手边图)覆盖在右手边图的顶部,以便它们都使用左侧y轴。最后,它不是直方图(根据定义,直方图给出了每条线的频率),而是可以使用实际值。也就是说,假设该图使用了在一分钟间隔内交易的股票。每根柱子,不是显示以该价格交易的股票的百分比,而是显示在该时间间隔内交易的股票数量。(我猜是旋转的条形图,而不是旋转的直方图)
建议(或链接到以前的解决方案)是非常欢迎的。
提前谢谢。

发布于 2018-07-10 10:01:09
ggridges可能会提供你想要的功能。下面是一个使用来自the ggridges vignette的iris数据的略微调整的示例。
library(ggridges)
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
geom_density_ridges(stat = "binline", bins = 20, scale = 1, draw_baseline = FALSE) +
coord_flip()

这是另一个例子,它使用了一些更接近你的例子图的模拟数据。
# Sample data
library(zoo)
set.seed(2017)
date <- seq.POSIXt(ISOdate(2018, 7, 9), ISOdate(2018, 7, 15), by = "min")
x <- zoo(cumsum(1 + round(20 * rnorm(length(date)), 2)), date)
library(tidyverse)
library(ggridges)让我们创建类似于示例图的左侧和右侧面板中的图。
左侧面板plot
as.data.frame(x) %>%
rownames_to_column("date") %>%
mutate(date = as.POSIXct(date)) %>%
ggplot(aes(date, x)) +
geom_line()

右侧面板plot
as.data.frame(x) %>%
rownames_to_column("date") %>%
mutate(date = as.factor(as.Date(date))) %>%
ggplot(aes(x, date)) +
geom_density_ridges(stat = "binline", bins = 50, scale = 1, draw_baseline = FALSE) +
coord_flip()

https://stackoverflow.com/questions/51256222
复制相似问题