gpt4 book ai didi

r - 如何每秒显示R ggplot2 x轴标签值?

转载 作者:行者123 更新时间:2023-12-04 11:53:47 24 4
gpt4 key购买 nike

我想在演示文稿中每秒显示x轴标签列表。
下面的简化代码示例及其在图1中的输出,其中应跳过四个日期(但#2和#4)。

# https://stackoverflow.com/a/6638722/54964
require(ggplot2)
my.dates = as.Date(c("2011-07-22","2011-07-23",
"2011-07-24","2011-07-28","2011-07-29"))
my.vals = c(5,6,8,7,3)
my.data <- data.frame(date =my.dates, vals = my.vals)
plot(my.dates, my.vals)
p <- ggplot(data = my.data, aes(date,vals))+ geom_line(size = 1.5)

预期输出:跳过第二和第四日期。

实际代码

由于 rev(Vars)逻辑,我无法将 as.Date应用于每个类别中的值的实际代码;变量 molten具有一列 Dates
p <- ggplot(molten, aes(x = rev(Vars), y = value)) + 
geom_bar(aes(fill=variable), stat = "identity", position="dodge") +
facet_wrap( ~ variable, scales="free") +
scale_x_discrete("Column name dates", labels = rev(Dates))

预期输出:跳过每个类别中的#2,#4,...值。
我以为在这里将 scale_x_discrete更改为 scale_x_continuous,并在 breaks = seq(1,length(Dates),2))中设置了一个中断序列 scale_x_continuous,但由于以下错误而失败。
Error: `breaks` and `labels` must have the same length 

基于提案的Juan的评论

代码
ggplot(data = my.data, aes(as.numeric(date), vals)) + 
geom_line(size = 1.5) +
scale_x_continuous(breaks = pretty(as.numeric(rev(my.data$date)), n = 5))

输出
Error: Discrete value supplied to continuous scale

将EricWatt的提案应用程序测试为实际代码

代码提案
p <- ggplot(molten, aes(x = rev(Vars), y = value)) + 
geom_bar(aes(fill=variable), stat = "identity", position="dodge") +
facet_wrap( ~ variable, scales="free") +
scale_x_discrete("My dates", breaks = Dates[seq(1, length(Dates), by = 2)], labels = rev(Dates))

输出
Error: `breaks` and `labels` must have the same length 

如果您有 scale_x_discrete("My dates", breaks = Dates[seq(1, length(Dates), by = 2)]),则得到的x轴没有任何标签,因此为空白。

图1.简化代码示例的输出,
图2 EricWatt的第一个提案的输出

enter image description here
enter image description here

操作系统:Debian 9
R:3.4.0

最佳答案

这适用于您的简化示例。没有molten data.frame,很难对照更复杂的情节进行检查。

ggplot(data = my.data, aes(date, vals)) + 
geom_line(size = 1.5) +
scale_x_date(breaks = my.data$date[seq(1, length(my.data$date), by = 2)])

基本上,使用 scale_x_date可能会为您处理任何奇怪的数字转换日期。

关于r - 如何每秒显示R ggplot2 x轴标签值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45147849/

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