csdn_user25 2023-08-10 16:47 采纳率: 0%
浏览 5

R语言plotly绘制如何不连续折线图

R语言plotly绘制如何不连续折线图

我有一个数据框例如

date            variable      value

20230801 1 0.5
20230802 1 0.4
20230803 1 0.9
20230804 1 0.2
20230805 1 0.7
20230801 2 0.1
20230804 2 0.5
20230805 2 0.9

在绘制plotly多折线图时候varuable=2的折线图会把20230802,20230803的数据平滑化(值等于连接20230801(0.1)和20230804(0.5)的线上值 )
我想绘制出不连续的折线图该怎么做

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-10 19:42
    关注

    【以下回答由 GPT 生成】

    解决方案

    为了绘制不连续的折线图,可以使用add_trace函数在同一个图中添加多个折线图。对于每个折线图,我们需要将不连续的部分处理成缺失值,然后再进行绘制。下面是具体的解决方法和代码示例。

    1. 首先,我们需要安装并加载plotly包,代码如下:
    install.packages("plotly")
    library(plotly)
    
    1. 然后,我们需要创建一个数据框来存储给定的数据,代码如下:
    data <- data.frame(
      date = c(20230801, 20230802, 20230803, 20230804, 20230805, 20230801, 20230804, 20230805),
      variable = c(1, 1, 1, 1, 1, 2, 2, 2),
      value = c(0.5, 0.4, 0.9, 0.2, 0.7, 0.1, 0.5, 0.9)
    )
    
    1. 接下来,我们需要将数据框中的日期列转换为字符型,并将变量列转换为因子型,代码如下:
    data$date <- as.character(data$date)
    data$variable <- as.factor(data$variable)
    
    1. 然后,我们需要使用split函数将数据框按照变量分割为多个子数据框,代码如下:
    data_list <- split(data, data$variable)
    
    1. 对于每个子数据框,我们需要将不连续的部分处理成缺失值。首先,我们找出每个子数据框中连续的日期序列,然后使用complete函数将其转换为包含缺失日期的完整序列。代码如下:
    complete_data_list <- lapply(data_list, function(df) {
      df$date <- as.Date(df$date, "%Y%m%d")
      complete(df, date = seq(min(df$date), max(df$date), by = "day"))
    })
    
    1. 最后,我们使用add_trace函数在同一个图中添加每个子数据框的折线图。我们可以使用循环来遍历每个子数据框,并设置每个折线图的颜色和线型。代码如下:
    p <- plot_ly()
    colors <- c("#1f77b4", "#ff7f0e")  # 可自行设置颜色
    linetypes <- c("solid", "dashed")  # 可自行设置线型
    
    for (i in seq_along(data_list)) {
      p <- add_trace(
        p,
        type = "scatter",
        mode = "lines",
        x = complete_data_list[[i]]$date,
        y = complete_data_list[[i]]$value,
        color = colors[i],
        linetype = linetypes[i],
        name = unique(data_list[[i]]$variable)
      )
    }
    
    p
    

    这样,我们就可以得到一个包含不连续折线图的plotly图形。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月10日

悬赏问题

  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?