我有$(document).ready(function() {
$('a').click(function() {
$('#myTable1 > tbody > tr').append('<td>info,</td>');
});
});
的Object classt。我想用xts
我的ggplot2
对象:
xts
我想在我的情节上也有月份数字。我试过这段代码:
structure(c(463829L, 469849L, 608148L, 470825L, 560057L, 431183L,
418000L, 508168L, 422579L, 589829L, 462264L, 487183L, 612174L,
467904L, 454620L, 450243L, 549898L, 422026L, 508311L, 385633L,
420200L, 619074L, 462605L, 465353L, 565804L, 464841L, 505977L,
624608L, 491175L, 459701L, 563406L, 461595L, 499607L, 674799L,
505167L, 637375L, 500131L, 473494L, 488527L, 613972L, 468938L,
454034L, 566511L, 456879L, 592797L, 491368L, 481690L, 597927L
), .Tsp = c(2012, 2015.91666666667, 12), class = "ts")
但是我收到了这个错误:
library(ggplot2)
library(zoo)
library(scales)
autoplot(as.zoo(a2)) + geom_line()
+scale_x_date(format = "%b-%Y")
答案 0 :(得分:1)
试试这个:
a2 <- read.table(text=' Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2012 463829 469849 608148 470825 560057 431183 418000 508168 422579 589829 462264 487183
2013 612174 467904 454620 450243 549898 422026 508311 385633 420200 619074 462605 465353
2014 565804 464841 505977 624608 491175 459701 563406 461595 499607 674799 505167 637375
2015 500131 473494 488527 613972 468938 454034 566511 456879 592797 491368 481690 597927', header=TRUE)
library(ggplot2)
library(reshape2)
a2$year <- rownames(a2)
a2 <- melt(a2)
ggplot(a2, aes(variable, value, group=year)) + geom_line() + facet_wrap(~year, ncol=1)
或全部在一个地块中:
ggplot(a2, aes(variable, value, group=year, col=year)) + geom_line()
或者这个:
a2 <- read.table(text=' Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2012 463829 469849 608148 470825 560057 431183 418000 508168 422579 589829 462264 487183
2013 612174 467904 454620 450243 549898 422026 508311 385633 420200 619074 462605 465353
2014 565804 464841 505977 624608 491175 459701 563406 461595 499607 674799 505167 637375
2015 500131 473494 488527 613972 468938 454034 566511 456879 592797 491368 481690 597927', header=TRUE)
a2$year <- rownames(a2)
a2 <- melt(a2, id='year')
a2$date <- as.Date(paste(a2$year, a2$variable, '01'), '%Y %b %d')
ggplot(a2, aes(date, value)) + geom_line() +
scale_x_date(date_breaks = "months", date_labels = "%b %Y") +
theme(axis.text.x = element_text(angle = 90))
答案 1 :(得分:0)
在ggplot中测试此选项。
+scale_x_date(labels=date_format("%Y-%m")
答案 2 :(得分:0)
我认为问题在于您的时间序列索引是十进制日期(即数字)格式,scale_x_date
期待日期格式的内容。
这是一些接近我想你想要的代码。它涉及首先使用日期格式创建一个zoo
对象,然后绘制该对象。像:
a3 <- zoo(a2, order.by = as.Date(yearmon(index(a2))))
p <- autoplot(a3)
p + scale_x_date(date_breaks = "1 month")
+ theme(axis.text.x = element_text(angle = 90))
我认为你会想要修改scale_x_date
中的选项以改善结果的外观,但我认为这应该让你走上正确的道路。
答案 3 :(得分:0)
请注意,a2
的类不是"xts"
- 它是"ts"
类对象。无论如何,首先将索引转换为类"yearmon"
,然后像这样使用scale_x_yearmon
:
z <- as.zoo(a2)
index(z) <- as.yearmon(index(z))
autoplot(z) + scale_x_yearmon()