如何使用plotly将连续变量用作barplot的颜色参数?

时间:2019-05-08 22:43:21

标签: r leaflet plotly

我一直在使用Rmarkdown生成的flexdashboard,但是有一些绘图无法显示的问题。经过大量测试,我确定我发送给以下图的class Vending_slot: def __init__(self, product, stock, price): self.product = product self.stock = stock self.price = price def dispense_item(self): print(f"You bought a {self.items[0]}.") self.items = items[1] machine = [] machine.append(Vending_slot("A1", ["Coke","Coke","Coke"], 1.5)) machine.append(Vending_slot("A2", ["Water","Water","Water"], 0.5)) machine.append(Vending_slot("B1", ["Twix","Twix","Twix"], 1)) machine.append(Vending_slot("B2", ["Gum","Gum","Gum"], 0.8)) print(machine) 参数引起了问题:

color =

p1 <- plot_ly(coursetable2, x = ~title, color = ~open+enrolled, y = ~percent, type = 'bar', name = 'Seats Taken', text =~paste('Seats Taken: ', enrolled, '</br> Open Seats: ' , open)) p1 open变量是连续的数值。

该图在RStudio中生成良好,但在编织文件后无法显示在生成的html文件中。

很奇怪,这也使同一文件中的enrolled图无法显示在最终的html文件中。 leaflet绘图代码如下:

leaflet

我收到的警告说:

  

textfont.color不支持数据数组

当我从上述代码中为mytext<-paste("City: ", maptable$name, "<br/>", "People: ", maptable$val, "<br/>", sep="") %>% lapply(htmltools::HTML) pal<-colorNumeric( palette = "viridis", domain = maptable$val) leaflet(maptable) %>% addTiles() %>% setView( lat=41.5, lng=-73 , zoom=8) %>% addProviderTiles("OpenStreetMap.BlackAndWhite") %>% addCircleMarkers(~long, ~lat, fillOpacity = 0.7, color=~pal(val), radius=~sqrt(val)+5, stroke=FALSE, label = mytext, labelOptions = labelOptions( style = list("font-weight" = "normal", padding = "3px 8px"), textsize = "13px", direction = "auto") ) 图取色参数时,所有图形都会显示。

如果按照下面的代码定义调色板,则所有图都可以正常生成。

p1

这解决了我遇到的颜色问题,但是我为为什么在原始代码中传递color参数失败而感到困惑。以及为什么在这种情况下两个图都失败了。我的解决方案是将连续变量传递给条形图的color参数的理想解决方案吗?

提前谢谢!

0 个答案:

没有答案