ggplot条形图:Scale_gradient_color:需要设置限制和中断

时间:2018-06-26 22:44:11

标签: r ggplot2 data-visualization

function onEdit(e) {
  const all = e.source.getSheets();
  var message;
  try {
    message = ["eh?", "bee", "see"].map(function (colName, i) {
      return [
        "Column '" + colName + "'",
        "(index " + i + "):",
        getTargetRowInColumn_(all[0], i)
      ].join(" ");
    }).join("; ");
  } catch (err) {
    message = err.message;
  }
  e.source.toast(message, "Row of the next blank cell in first sheet", 60);
  // Datestamp the next empty cell in column A of the first sheet.
  var targetColumn = 1; // Column A
  all[0].getRange(getTargetRowInColumn_(all[0], targetColumn - 1), targetColumn).setValue(new Date());
}

我想为此数据创建一个条形图,但是我需要图例中的色带渐变,并且颜色通常是从1到4的比例。恰好我的平均值是〜2。是我尝试过的代码:

values= c('Customers', 'Preparedness', 'Integrity', 'ContImprov', 'Teamwork', 'Employees', 'Community', 'Communications')
mean = c(2.714,2.800, 2.809, 2.084, 2.02, 2.39, 2.56, 2.48)
count = c(49, 20, 42, 59, 55, 63, 37, 47) 
data = data.frame(Values = values, Mean = mean, Count = count)

我假设limit and breaks参数可以实现我想要的功能,但是它似乎并不影响我的输出。下面是我得到的图像。

enter image description here

更新

Henrik的建议是正确的,我应该使用scale_fill_gradient。

Here is the correct graph

1 个答案:

答案 0 :(得分:1)

正如@Henrik提到的fill != color。因此,将scale_colour_gradient更改为scale_fill_gradient可以使您:

ggplot(data, aes(x = Values, y = count, fill = Mean)) +
  geom_bar(stat = 'identity') +
  theme(axis.text.x=element_text(angle=45, hjust=1)) +
  guides(fill=guide_legend(title="Average Rank")) +
  ylab("Responses") +
  guides(limits = c(1,4),fill = guide_colorbar(reverse = TRUE)) +
  scale_fill_gradient(limits = c(1,4), breaks=c(1,2,3,4))

我相信这是您想要的。您还可以通过low =high =参数更改使用的颜色。