我正在try 生成一个Simple渲染,以显示x范围的值与阈值(红色、黄色、绿色)相比.作为输入,我有一系列数字,代表应该位于栏最左边点的数字和应该位于栏最右边点的数字:

x1 <- c(44, 73)
boxplot(x1, ylim=c(0,100), horizontal=TRUE, boxwex=0.2)

enter image description here

理想情况下,我能够生成看起来像这样的东西,背景阈值为红色([0到48]),背景阈值为黄色([48到69]),红色(69到ggtitle]).理想情况下还有一个ggtitle风格的标题.

enter image description here

我已经try 过plotlyggplot2stripchart的几个选项,但都未能生成接近我目标的任何选项.有人有什么 idea 吗?

推荐答案

您可以使用layout中的shapes参数来生成这样的plotly图:

library(plotly)
library(tibble)
library(purrr)

lims <- local({
  lims <- c(0L, 48L, 69L, 100L)
  tibble(left = head(lims, -1L),
         right = tail(lims, -1L),
         color = c("firebrick", "darkorange", "forestgreen"))
})

shps <- pmap(lims, function(left, right, color) {
  list(
    type = "rect",
    fillcolor = color,
    line = list(width = 0),
    x0 = left,
    x1 = right,
    y0 = 0,
    y1 = 1,
    layer = "below"
  )
})

shps <- c(shps,
          list(
            list(
              type = "rect",
              fillcolor = "#000",
              line = list(color = "#fff", width = 2),
              x0 = 44,
              x1  = 73,
              y0 = .35,
              y1 = .65,
              layer = "below"
            )
          )
)

plot_ly(width = 1000, height = 200) %>% 
  add_text(x = 60, y = .5, text = "Add a Label", textfont = list(color = "#fff")) %>% 
  layout(shapes = shps,
         xaxis = list(ticks = "outside", zeroline = FALSE, showgrid = FALSE),
         yaxis = list(showticklabels = FALSE, zeroline = TRUE, showgrid = FALSE,
                      zerolinecolor = "#000")) 

Plotly Graph with 3 colored rectangles and a label

R相关问答推荐

过滤Expand.Grid的结果

按崩溃类别分类的指数

使用gggplot 2在R中重新调整面板和y轴文本大小

提取R中值和列名的所有可能组合

使用对管道内单元格的引用生成新变量

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

通过在colname中查找其相应值来创建列

如何在R中通过多个变量创建交叉表?

在多页PDF中以特定布局排列的绘图列表不起作用

按列中显示的配对组估算NA值

如何在R中使用hmm TMB提前一步预测观察到的状态?

删除数据帧中特定行号之间的每第三行和第四行

使用ggplot2中的sec_axis()调整次轴

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

名字的模糊匹配

将美学添加到ggploy中的文本标签

从两个数据帧中,有没有办法计算R中一列的唯一值?

将R中对象的CSV数组转换为JSON数组

在直方图中显示两个变量