R:制作分数计/梯度弧

时间:2017-07-04 12:39:04

标签: r ggplot2 colors gradient meter

我正在尝试重新创建一个在Excel中制作的图表。它基本上是一个分数计或梯度弧,显示某个区域的剥夺十分位数。因此,它是一个从10到1(红色到绿色)的梯度仪,具有一定的值,表示剥夺十分位数。像这个图像的东西。

Deprivation in area gradient arc

我需要在R中创建相似的图形,这样我就可以更改剥夺十分位数并显示图形。我尝试使用colorRampPaletteplot,但找不到办法执行此操作。我真的不介意图表是弧形还是平面图形。

PS:我试图找到一种更好的方式来直观地表示这种数据但却找不到任何数据。如果你想到任何更合适的东西,请随时向我指出。

由于

1 个答案:

答案 0 :(得分:0)

我不能完全确定这是否是您正在寻找的,当然您可以根据自己的目的进行修改,但这里有一小段代码可以帮助您入门。它构建了一个从0到100的水平仪表,您只需选择值val(此处为60)和文本sText(此处为Harborough 003E)。

library(ggplot2)
val <- 60 ; sText <- "Harborough 003E"

df <- data.frame(y = seq(0, 100, by = 1), x = 1)
df.labs <- data.frame(y = c(0, 100, val),
                      lab = c("Most Deprived",
                              "Least Deprived",
                              sText))

ggplot(df, aes(x = x, y = y, fill = y)) + 
  geom_tile() +
  geom_hline(yintercept = val, colour = "blue", size = 1) + 
  geom_text(data = df.labs, aes(x = 1, y = y, label = lab), hjust = c(0, 1, 0.5)) + 
  scale_fill_gradient(low = "red", high = "green", guide = FALSE) + 
  coord_flip() + 
  theme_void() + 
  theme(aspect.ratio = 0.1)

当然,您可以按照自己的意愿操纵它,添加刻度线,值,标题或其他任何您需要的东西。

结果图是:

A Score Meter

我希望这会有所帮助。