我正在尝试使用 R 和 Shiny 的 Web 应用程序在同一空间上叠加两个折线图。
This is the only example我可以找到类似的问题,但我不明白它们之间有什么关系。这也是唯一一个展示这个问题的情节;我的其余 Shiny 应用程序图表都很好。
我的代码(相关部分)是
x1 <- c( 10, 25, 19)
x2 <- c( 3, 24, 11)
x3 <- c( 4, 15, 1)
df <- data.frame( "October" = x1, "November" = x2, "August"=x3)
x <- factor(1:3, labels = c("October", "November", "August"))
t1 <- as.numeric(df[1,1:3])
t2 <- as.numeric(df[2,1:3])
plot(t1 ~ x, type="n", ylim=c(min(t1),max(t2)))
lines(t1 ~ x, col="blue")
lines(t2 ~ x, col="red")
但无论我将初始绘图的类型更改为什么,它都会在所有绘图点处给出水平线。我最初将其设置为 type="l"
但它做了同样的事情,所以我手动添加了属于那里的行,并尝试使用 type="n 使水平条消失“
有人对这个问题有任何见解吗?
我更喜欢基本 R 中的解决方案,因此不使用 ggplot。
最佳答案
因为x
是一个因子
,所以plot(t1 ~ x)
实际上生成了一个条形图。您每月只有一次测量结果,因此您看到的只是一条水平线。
您可以执行以下操作:
plot.default(t1 ~ x, type="n", ylim=c(min(t1),max(t2)), xaxt = "n");
axis(1, at = as.numeric(x), labels = levels(x))
lines(t1 ~ x, col="blue")
lines(t2 ~ x, col="red")
关于r - 用因子 R 叠加 2 个线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48819166/