我正在尝试使用plotly生成带有2个下拉按钮(一个用于x轴,一个用于y轴)的绘图,这将允许我更改相关轴上的数据,比例,标签等,从而创建一个散点图,可以比较任一轴上的任意两列数据。我了解如何制作下拉按钮:
p <- plot_ly(df, x = ~x, y= ~y1) %>%
layout(
xaxis = list(domain = c(0.1, 1)),
yaxis = list(domain = c(0.1, 1)),
updatemenus = list(
list(
y = 1.1, # This is the location of the vertical axis button
x= 0.5,
buttons = list(
list(method = "update",
args = list(list("visible", list(T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F)),
label = colnames(df)[1]),
list(method = "update",
args = list(list("visible", list(T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F)),
label = colnames(df)[1]), # etc
我正在努力做些什么,我将如何更新发送到绘图的数据?
答案 0 :(得分:0)
EDIT我已经弄清楚了通过将下拉列表中的post从Python转换为R来使用下拉按钮更改特定轴上的数据的语法。代码如下:
p <- plot_ly(df, x= df[,1], y= df[,2],
mode= "markers", type= "scatter",
color= ~df[,3],) %>%
layout(
updatemenus = list(
list(
x= 0.46, y = 1.1,
yanchor= "top",
buttons = list(
list(args = list(list(y= list(df[,1]))),
label = colname(df[,1]), method = "restyle"),
list(args = list(list(y= list(df[,2]))),
label = colname(df[,2]), method = "restyle"),
)
),
list(
x= 1.1, y = 1.1,
yanchor= "top",
buttons = list(
list(args = list(list(x= list(df[,1]))),
label = colname(df[,1]), method = "restyle"),
list(args = list(list(x= list(df[,2]))),
label = colname(df[,2]), method = "restyle"),
)
)
)
)
annot <- list(list(text = "Vertical<br>Axis", x=-0.1, y= 1.1, xref='paper',
yref='paper', showarrow=FALSE),
list(text = "Horizontal<br>Axis", x= 0.57, y= 1.1,
xref='paper', yref='paper', showarrow=FALSE))
p <- p %>%layout(
annotations = annot)
此代码有效,但是出现了两个新问题:
1)如何更改数据并更改轴标签?
2)每次轴改变时,如何用df [,3]对绘图进行颜色编码?