r - 在R中的同一图中绘制具有不同xintervals的两个文件
问题描述
我有两个要在图表中绘制的文件。以下是文件:
文件 1:
structure(c(1000, 935, 925, 903, 868, 850, 805, 797, 759, 738,
734, 700, 683, 666, 567, 562, 500, 487, 461, 416, 400, 393, 372,
364, 357, 338, 333, 329, 315, 300, 283, 280, 263, 250, 231, 200,
189, 176, 150, 141, 119, 104, 103, 101, 100, NA, 21.4, 21.2,
20.4, 19.1, 18.4, 17, 17.8, 17.4, 14.7, 14.2, 13.2, 12, 10.8,
-0.7, -1, -4.9, -5.8, -7.7, -12.5, -14.3, -15.1, -17.5, -18.5,
-19.9, -22.3, -23.1, -23.7, -26, -28.5, -31.5, -32.1, -35.9,
-38.9, -43.5, -51.9, -55.1, -59.1, -67.1, -70, -78.1, -84.5,
-83.3, -80.9, -79.1), .Dim = c(45L, 2L))
文件 2:
structure(c(1000, 950, 900, 850, 800, 750, 700, 650, 600, 550,
500, 450, 400, 350, 300, 250, 200, 150, 100, NA, 25.4, 27.2,
20.5, 18.1, 17.4, 16, 14.2, 13.2, 12, 10.8, -0.7, -1, -4.9, -17.5,
-84.5, -83.3, -80.9, -79.1), .Dim = c(19L, 2L))
问题:
1第一个文件有不规则间隔,第二个文件有规则间隔100。我有多个文件类似于文件1(也有不规则间隔)。如何在 1 个图中绘制这 2 个文件?我想在绘制到 100 时指定间隔。
我尝试使用 plot() 选项和 par(new=T) 在 R 中绘制它。结果如下:
y 轴似乎相互重叠。
[2] 我想将 y 轴绘制为在最低级别以 1000 反转。
[3] 有没有办法在 ggplot 中做到这一点?
关于如何在 R 中执行此操作的任何建议?
我会很感激任何帮助。
解决方案
解决方案使用plotly
:
您的输入数据:
df=data.frame(structure(c(1000, 935, 925, 903, 868, 850, 805, 797, 759, 738,
734, 700, 683, 666, 567, 562, 500, 487, 461, 416, 400, 393, 372,
364, 357, 338, 333, 329, 315, 300, 283, 280, 263, 250, 231, 200,
189, 176, 150, 141, 119, 104, 103, 101, 100, NA, 21.4, 21.2,
20.4, 19.1, 18.4, 17, 17.8, 17.4, 14.7, 14.2, 13.2, 12, 10.8,
-0.7, -1, -4.9, -5.8, -7.7, -12.5, -14.3, -15.1, -17.5, -18.5,
-19.9, -22.3, -23.1, -23.7, -26, -28.5, -31.5, -32.1, -35.9,
-38.9, -43.5, -51.9, -55.1, -59.1, -67.1, -70, -78.1, -84.5,
-83.3, -80.9, -79.1), .Dim = c(45L, 2L)))
df1= data.frame(structure(c(1000, 950, 900, 850, 800, 750, 700, 650, 600, 550,
500, 450, 400, 350, 300, 250, 200, 150, 100, NA, 25.4, 27.2,
20.5, 18.1, 17.4, 16, 14.2, 13.2, 12, 10.8, -0.7, -1, -4.9, -17.5,
-84.5, -83.3, -80.9, -79.1), .Dim = c(19L, 2L)))
代码:
plot_ly(df) %>%
add_trace(x=df$X1,y=df$X2,name = 'Line 1',type = 'scatter',mode = 'lines+markers',connectgaps = TRUE) %>%
add_trace(x=df1$X1,y=df1$X2,name = 'Line 2',type = 'scatter',mode = 'lines+markers',connectgaps = TRUE,yaxis = "y2") %>%
layout(title = 'Title here',
xaxis = list(title = "X-axis title"),
yaxis2 = list(side = 'right', overlaying = "y", title = 'secondary y axis', showgrid = FALSE, zeroline = FALSE))
推荐阅读
- java - Is there a way to read from specific offset in a Kafka stream from a Spark streaming job?
- python - UnicodeEncodeError: 'latin-1' codec can't encode character u'\u05a0' in position 85: ordinal not in range(256)
- postgresql - 如何读取 PostgreSQL wal 文件数据?是否有任何命令可以将 PostgreSQL 二进制文件转换为可读的文本格式?
- anaconda - 与 Google Colab 兼容的最新 conda 版本是什么
- r - 我无法汇总按年份 R 分组的记录值
- ios - React Navigation 从深度链接中获取参数不起作用
- json - 如何将谷歌翻译结果与输入字符串匹配
- sql - 检索每个月的最大周数减 2
- tensorflow - TensorFlow 如何计算模型的准确率?
- php - php多维数组问题