如何为双Y轴Plotly图表指定条形图与折线图颜色?
解决Plotly双Y轴图表颜色指定问题
你遇到的颜色设置无效问题,是因为Plotly的color参数默认是用于映射数据列到颜色刻度的,而非直接指定单一固定颜色。要给条形图和折线散点图指定固定颜色,需要用以下方式:
修改后的可运行代码
library(plotly) library(lubridate) year <- c(2011:2019) data1 <- c(2, 3, 2, 5, 1, 8, 2, 7, 9) data2 <- c(20, 30, 20, 50, 10, 80, 20, 70, 90) dataset <- data.frame(year, data1, data2) dataset$year <- lubridate::parse_date_time(dataset$year, orders = "%Y") dataset$year <- as.Date(dataset$year) plot_ly() %>% # 条形图指定颜色 add_trace(x = dataset$year, y = dataset$data1, type="bar", yaxis="y", name="yaxis data", marker = list(color = "red")) %>% # 替换原color参数 # 折线散点图指定颜色 add_trace(x = dataset$year, y = dataset$data2, type="scatter", mode="lines+markers", yaxis="y2", name="yaxis2 data", line = list(color = "blue"), # 设置折线颜色 marker = list(color = "blue")) %>% # 设置标记点颜色 layout(yaxis=list(side="left"), yaxis2=list(side="right",overlaying="y"), showlegend=TRUE)
关键修改说明
- 对于条形图(bar类型):使用
marker = list(color = "red")直接指定条形的填充颜色,若需要设置条形边框颜色,可添加marker.line.color = "black"这类参数。 - 对于折线散点图(scatter类型,mode=lines+markers):需要分别设置
line(折线颜色)和marker(标记点颜色),确保折线和点的颜色统一。
内容的提问来源于stack exchange,提问作者JontroPothon
相关产品推荐
相关产品推荐

