Несколько графиков на одной оси на графике - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь нарисовать графики, используя сюжет, где все они имеют одну и ту же ось.Это один набор данных

  X variable       value
1 1       SH 0.002814895
2 1       VH 0.002591173
3 1       SS 0.002599700
4 1      HCG 0.002810790

, и это графически его график

plot_ly(rr1, x=~variable, y=~value, type = 'scatter', marker=list(size=10, color='rgba(255,182,193,0.9)', 
    line=list(color='rgba(152,0,0,0.8)', width = 2)), name = "Character and Degree")%>%
 layout(title = "Graph", font = list(family = "Arial Black"),yaxis=list(zerolinecolor = toRGB("red"),
                                                                     gridcolor = "rgb(190,190,190)"), xaxis=list(gridcolor = "rgb(190,190,190)")) %>% 
 layout(plot_bgcolor='rgb(230, 230, 230)',paper_bgcolor='rgb(220, 220, 220)',
     font = list(color = 'rgb(100,100,100)'))

enter image description here

, а это другой набор данных

   X variable       value
 1 1       SH 0.000982607
 2 1       VH 0.000917569
 3 1       SS 0.000911039
 4 1      HCG 0.000971009

и это его сюжет

     plot_ly(rr2, x=~variable, y=~value, type = 'scatter', marker=list(size=10, color='rgba(38,182,193,0.9)', 

     line=list(color='rgba(75,0,0,0.8)', width = 2)), name = "Character and Degree")%>%
  layout(title = "Graph", font = list(family = "Arial Black"),yaxis=list(zerolinecolor = toRGB("red"),
                                                                     gridcolor = "rgb(190,190,190)"), xaxis=list(gridcolor = "rgb(190,190,190)")) %>% 
   layout(plot_bgcolor='rgb(230, 230, 230)',paper_bgcolor='rgb(220, 220, 220)',
     font = list(color = 'rgb(100,100,100)'))

enter image description here

Я хочу, чтобы эти два графика имели общую ось, оставляя цветакак есть.

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете объединить два кадра данных и использовать два add_markers, по одному для каждого столбца значений:

df1 <- read.table(text="X variable       value
1 1       SH 0.002814895
2 1       VH 0.002591173
3 1       SS 0.002599700
4 1      HCG 0.002810790", header=TRUE)

df2 <- read.table(text="   X variable       value
 1 1       SH 0.000982607
 2 1       VH 0.000917569
 3 1       SS 0.000911039
 4 1      HCG 0.000971009", header=TRUE)

df12 <- merge(df1, df2, by=c("X","variable"))

library(plotly)

plot_ly(df12, x=~variable) %>% 
  add_markers(y=~value.x, type = 'scatter') %>%
  add_markers(y=~value.y, type = 'scatter')

Но заголовок оси y и легенды не хороши:

enter image description here

Итак, измените их:

ax <- list(
  title = "Value",
  titlefont = list(
    family = "Arial, sans-serif",
    size = 18,
    color = "Red"
  ),
  showticklabels = TRUE
)

plot_ly(df12, x=~variable) %>% 
  add_markers(y=~value.x, type = 'scatter', name="value1") %>%
  add_markers(y=~value.y, type = 'scatter', name="value2") %>% 
  layout(yaxis=ax)

enter image description here

...