垂直 vistime 时间轴和重叠 geom_text 标签
Vertical vistime timeline and overlapping geom_text labels
我正在尝试使用 vistime
及其 ggplot
绘图选项绘制垂直时间线。我的主要目的是更好地将它与文本并排集成。这是代码:
library("vistime")
library("plotly")
data <- read.csv("../../data/programming.csv")
g <- gg_vistime(data, col.event="Item", col.start="Start.Date", col.end="End.Date", col.group="Group")
g + theme(axis.text.x = element_text(angle=90, color='blue4',size=14) )+coord_flip()
如您所见,在我执行 coord_flip
时,标签相互交叉。我想让标签垂直。这是绘制它们的代码:
所以这意味着它是一个 geom_text
句子。完成后geom_text-drawn文本有什么方法可以改变的方向吗?我可以使用一些 theme
命令来做到这一点吗?除此之外,有什么方法可以使用 vistime
?
更改标签的位置
您可以解构任何 ggplot2
visualization with (surprisingly) ggplot_build
(实际上,它所做的是创建可以使用普通香草 plot
呈现的元素)。
data <- read.csv("data/programming.csv")
g <- gg_vistime(data, col.event="Item", col.start="Start.Date", col.end="End.Date", col.group="Group") + theme(axis.text.x = element_text(angle=90, color='blue4',size=14) )+coord_flip()
g.d <- ggplot_build(g)
g.d$data[[4]]$angle <- 90
rebuilt <- ggplot_gtable(g.d)
png(filename="img/timeline.png", width=240, height=960)
plot(rebuilt)
dev.off()
这会创建一个包含不同绘图元素的数据框,包括 g.d$data
,它在第 4 个元素中呈现时有效地包含数据及其属性。 g.d$data[[4]]$angle
包含已渲染的所有 geom_text
元素的角度。所以一旦你得到它,这只是一个单独或集体改变它到你想要的东西的问题。您需要使用 ggplot_gtable
重建图,然后使用核心 plot
命令以您想要的任何方式绘制和渲染它,在本例中为 png
.
无论如何,ggplot_build
允许您自省数据结构和使用 ggplot 创建的图表的不同部分,在 [=31] 之后更改其任何层、元数据或部分=] 它们已被创建。在我们的例子中,它产生 the intended effect
我正在尝试使用 vistime
及其 ggplot
绘图选项绘制垂直时间线。我的主要目的是更好地将它与文本并排集成。这是代码:
library("vistime")
library("plotly")
data <- read.csv("../../data/programming.csv")
g <- gg_vistime(data, col.event="Item", col.start="Start.Date", col.end="End.Date", col.group="Group")
g + theme(axis.text.x = element_text(angle=90, color='blue4',size=14) )+coord_flip()
如您所见,在我执行 coord_flip
时,标签相互交叉。我想让标签垂直。这是绘制它们的代码:
所以这意味着它是一个 geom_text
句子。完成后geom_text-drawn文本有什么方法可以改变的方向吗?我可以使用一些 theme
命令来做到这一点吗?除此之外,有什么方法可以使用 vistime
?
您可以解构任何 ggplot2
visualization with (surprisingly) ggplot_build
(实际上,它所做的是创建可以使用普通香草 plot
呈现的元素)。
data <- read.csv("data/programming.csv")
g <- gg_vistime(data, col.event="Item", col.start="Start.Date", col.end="End.Date", col.group="Group") + theme(axis.text.x = element_text(angle=90, color='blue4',size=14) )+coord_flip()
g.d <- ggplot_build(g)
g.d$data[[4]]$angle <- 90
rebuilt <- ggplot_gtable(g.d)
png(filename="img/timeline.png", width=240, height=960)
plot(rebuilt)
dev.off()
这会创建一个包含不同绘图元素的数据框,包括 g.d$data
,它在第 4 个元素中呈现时有效地包含数据及其属性。 g.d$data[[4]]$angle
包含已渲染的所有 geom_text
元素的角度。所以一旦你得到它,这只是一个单独或集体改变它到你想要的东西的问题。您需要使用 ggplot_gtable
重建图,然后使用核心 plot
命令以您想要的任何方式绘制和渲染它,在本例中为 png
.
无论如何,ggplot_build
允许您自省数据结构和使用 ggplot 创建的图表的不同部分,在 [=31] 之后更改其任何层、元数据或部分=] 它们已被创建。在我们的例子中,它产生 the intended effect