【问题标题】:R: formatting axis and titles on plotly plots (time series)R:在情节图上格式化轴和标题(时间序列)
【发布时间】:2021-04-12 21:50:44
【问题描述】:

我正在使用 R 编程语言。使用以下教程:https://plotly.com/r/time-series/ 和这个 stackoverflow 问题:How to plot multiple series/lines in a time series using plotly in R? 我能够制作交互式时间序列图:

library(xts)
library(ggplot2)
library(dplyr)
library(plotly)
library(lubridate)

#time series 1
date_decision_made = seq(as.Date("2014/1/1"), as.Date("2016/1/1"),by="day")

property_damages_in_dollars <- rnorm(731,100,10)

final_data <- data.frame(date_decision_made, property_damages_in_dollars)

final_data %>%
  mutate(date_decision_made = as.Date(date_decision_made)) %>%
  add_count(week = format(date_decision_made, "%W-%y"))

final_data$class = "time_series_1"


#time series 2
date_decision_made = seq(as.Date("2014/1/1"), as.Date("2016/1/1"),by="day")

date_decision_made <- format(as.Date(date_decision_made), "%Y/%m/%d")

property_damages_in_dollars <- rnorm(731,10,10)

final_data_2 <- data.frame(date_decision_made, property_damages_in_dollars)

final_data_2 %>%
  mutate(date_decision_made = as.Date(date_decision_made)) %>%
  add_count(week = format(date_decision_made, "%W-%y"))

final_data_2$class = "time_series_2"

#combine
data = rbind(final_data, final_data_2)
data$class = as.factor(data$class)


a = data  %>% 
    
    group_by(class) %>% 
    plot_ly(x = ~ yday(date_decision_made)) %>% 
    add_lines(y = ~ property_damages_in_dollars, 
              color = ~ factor(class)
    ) 

但是,我无法在此图表中添加自定义标题和轴:

with_titles = data  %>% 
    
    group_by(class) %>% 
    plot_ly(x = ~ yday(date_decision_made)) %>% layout(title = 'damages vs time', xaxis = 'time', yaxis = 'damage') %>%
    add_lines(y = ~ property_damages_in_dollars, 
              color = ~ factor(class)
    ) 

 with_titles

Error: $ operator is invalid for atomic vectors

尝试更改此图的 x 轴时会产生类似的错误:

with_titles_and_axis = data  %>% 

group_by(class) %>% 
plot_ly(x = ~ yday(date_decision_made)) %>% layout(title = 'damages vs time', xaxis = xaxis =list(type="date",
               tickformat='%d/%m/%Y',
               showticklabels='True',
                tick0= "2014-01-01",
                dtick= "M12"), yaxis = 'damage') %>%
add_lines(y = ~ property_damages_in_dollars, 
          color = ~ factor(class)
) 

#source: https://community.plotly.com/t/plotly-time-series-forecasting-modify-default-x-axis-and-y-axis-range/11390/2

谁能告诉我我做错了什么?是否也可以在悬停文本上显示日期? 谢谢

【问题讨论】:

    标签: r time-series plotly data-visualization data-manipulation


    【解决方案1】:

    我刚刚想出了如何将日期更改为更标准的格式:

    a = data  %>% 
        
        group_by(class) %>% 
        plot_ly(x = ~ (date_decision_made)) %>% 
        add_lines(y = ~ property_damages_in_dollars, 
                  color = ~ factor(class)
        ) 
    

    现在,我必须弄清楚如何更改标题/轴,以及在悬停文本期间显示日期

    【讨论】:

    • layout 参数应该是列表:layout(title = list(text = 'damages vs time'), xaxis = list(text = 'time'), yaxis = list(text = 'damage'))
    • 感谢您的回复!我尝试了以下代码: a = data %>% group_by(class) %>% plot_ly(x = ~ (date_decision_made)) %>% layout(title = list(text = 'damages vs time'), xaxis = list( text = 'time'), yaxis = list(text = 'damage')) %>% add_lines(y = ~ property_damages_in_dollars, color = ~ factor(class) ) .... 我得到一个错误: x % 错误||% p$x$attrs[[1]][["x"]] : 缺少参数“p”,没有默认值....你知道我做错了什么吗?谢谢
    • 它对我有用,尝试重新加载和/或清理你的环境
    猜你喜欢
    • 1970-01-01
    • 2017-01-17
    • 2020-08-12
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多