【发布时间】:2016-04-14 03:19:00
【问题描述】:
我有一个data.framedf,它由四个站点(1 到 4)组成。从 2011 年到 2014 年,每个站点都有四个参数(A 到 D)的值。我想为站点 1 创建一个动态图。
library(dplyr)
siteID <- c(rep("site1", 16), rep("site2", 16), rep("site3", 16), rep("site4", 16))
YEAR <- as.numeric(rep(c("2011", "2012", "2013", "2014"), 16))
parameter <- c(rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4),
rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4),
rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4),
rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4))
value <- c(seq(1, 4, by=1), seq(10, 40, by=10), seq(12, 18, by=2), seq(5, 20, by=5),
seq(3, 12, by=3), sample(13:18, 4), sample(15:22, 4), sample(10:18, 4),
seq(7, 1, by=-2), sample(15:22, 4), sample(15:19, 4), sample(10:20, 4),
seq(8, 5, by=-1), seq(50, 20, by=-10), seq(16, 10, by=-2), seq(20, 5, by=-5))
df <- data.frame(siteID, YEAR, parameter, value)
df$YEAR <- as.numeric(df$YEAR)
df1 <- df %>%
dplyr::filter(siteID =="site1")
我使用以下代码为站点 1 创建了动态图表
library(googleVis)
site1 = gvisMotionChart(data=df1,
idvar="parameter",
timevar="YEAR",
chartid="site1")
plot(site1)
效果很好。结果在这里
但是,默认的 x axis 和 y axis 是 value。我不得不将 x axis 自己从 value 更改为 YEAR。
我想更改默认值,以便 x-axis 将变为 YEAR,colorvar 将变为 parameter,sizevar 将变为 value。我是用这段代码做到的
site1_1 = gvisMotionChart(data=df1,
idvar="parameter",
timevar="YEAR",
chartid="site1",
xvar="YEAR",
yvar="value",
colorvar="parameter",
sizevar="value")
plot(site1_1)
它一直显示为正在加载,但未创建绘图。 任何建议将不胜感激。
【问题讨论】:
-
嗨,在您的 df 中,在每个时间点,您都需要 x 和 y 值。因此以 2011 年为例。您需要参数 A、B、C、D 的 x 和 y 值。您提供的只是 x 值。你能提供额外的信息吗?
-
@user1357015 感谢您的帮助。正如我在问题中提到的,绘图工作正常,但默认轴是 x 轴和 y 轴的值。我不得不将 x 轴更改为时间(年)。有什么办法可以让它默认时间。
-
不——它工作不正常。事实上,在 x 轴上,您正在绘制“值”,而在 y 轴上,您正在绘制“值”。如果您将“YEAR”绘制为 x 值,您将得到垂直排列的值而不是对角线。
-
@user1357015 谢谢。我通过将 x 值更改为 YEAR 来垂直获取它们,如上图所示。
-
宾果游戏!那么你现在需要它做什么呢?