【问题标题】:Draw scatter plot with two nominal variables with Plotly package in R使用 R 中的 Plotly 包绘制具有两个名义变量的散点图
【发布时间】:2021-05-30 10:37:41
【问题描述】:

问题是如何使用 R 中的 Plotly 包绘制以下情节?

我有一个包含 166 列的数据框。我应该使用循环来绘制所有列。我尝试如下:

  X1<-rep(c("A","B"),each=4)
  X2<-rep(letters[1:4],len=length(X1))
  Y1<-c(1, 1.5, 1.3, 1.4, 1.8, 1.7, 1.5, 1.6)
  Y2<-Y1^2;Y3<-log(Y1)
  data_f<-data.frame(X1=X1,X2=X2,Y1=Y1,Y2=Y2,Y3=round(Y3,2))
  plt <- plot_ly()%>%
  layout(title = "",
     xaxis = list(title = ""),
     yaxis = list (title = "") )


 for( i in 3:dim(data_f)[2]){
 text1<-paste0('X1 : ', data_f$X1, '\n',
            'X2 : ', data_f$X2, '\n',
            'Y1 : ', data_f$Y1, '\n',
            'Y2 : ', data_f$Y2, '\n',
            'Y3 : ', data_f$Y3 
 )

plt<-plt %>% add_trace(x=paste(data_f$X1,data_f$X2)
                               ,y=data_f[,i],
                               type='scatter',
                               mode='line+markers',
                               line=list( width = 4),
                               marker=list(size=15),
                               text =text1,
                               hoverinfo = 'text'
                               
    )  
  }
  plt

结果如下:

提前感谢您提供的任何帮助。

【问题讨论】:

    标签: r r-plotly


    【解决方案1】:

    代码

    plt <- plot_ly(data = data_f,
                   x=~ list(X1, X2))%>%
      layout(title = "Chart Title",
             xaxis = list(title = ""),
             yaxis = list (title = ""),
             hovermode="x unified")
    
    for(i in 3:5){
      plt <- plt %>%
        add_trace(y= data_f[,i],
                  mode='lines+markers',
                  type = "scatter",
                  name = colnames(data_f)[i])
    }
    
    
    plt
    

    可以使用x =~ list(X1, X2) 设置多类别轴(x 轴有两个级别)。并且可以通过 hovermode="x unified"实现组合的hovertemplate。

    剧情

    【讨论】:

    • 有没有办法为每个类别分配不同的颜色。比如第一个“a b c d”的颜色是红色,其他是蓝色?
    • 在plolty中没有实现tickfont的不同颜色。 ticktext (stackoverflow.com/questions/58183962/…) 有变通办法,但不知道能不能把这个转移到多分类轴上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2023-02-18
    相关资源
    最近更新 更多