r - 用因子 R 叠加 2 个线图

标签 r plot shiny

我正在尝试使用 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。

enter image description here

最佳答案

因为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")

enter image description here

关于r - 用因子 R 叠加 2 个线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48819166/

相关文章:

r - 获取数据框的名称

r - 访问嵌套在 R 列表中的向量的倒数第二个元素

r - 在sparklyr中寻找 'for loop'替代品

python - 如何在python中使用networkx绘制有向图?

r - 如何在 Shiny 中编辑 .yml 文件

r - 取消列出 R 中的对象,但用 NAs 替换 numeric(0)

r - 使用 'directlabels' 包来标记选择曲线

python - 无法使用matplotlib显示数据

r - 将因子水平转换为列表以用于 R Shiny 中的动态输入

r - Shiny 的 plotlyOutput() 不响应高度和宽度大小