当size被映射到变量时,ggplot2 geom_point图例

时间:2017-06-15 13:38:41

标签: ggplot2 legend

我正在创建一个绘图,其中点的大小与给定变量的值成比例,然后我将其平方以增加点之间大小的差异...

# Using example from https://www3.nd.edu/~steve/computing_with_data/11_geom_examples/ggplot_examples.html #

library(ggplot2)
str(mtcars)

p <- ggplot(data = mtcars, aes(x = wt, mpg))
p + geom_point(aes(size = (qsec^2)))

enter image description here

从结果图中,有没有办法指定图例中显示的点的大小,并更改图例标签以反映原始值而不是这些值的平方? (如图中手工编辑)

1 个答案:

答案 0 :(得分:2)

使用button.Attributes.Add("onclick", "if($('#" + hiddenTextBoxId + "').val() == '" + GetHiddenText(dataType) + "') {" + "$('#" + hiddenTextBoxId + "').val('" + HiddenInfoPartial + textBox.Text.Substring(5) + "'); " + "$('#" + hiddenTextBoxId + "').focus();" + "return false;" + "} else {" + "$('#" + hiddenTextBoxId + "').val('" + GetHiddenText(dataType) + "');" + "return false;" + "}"); 修改图例。通过设置scale_sizebreaks,您可以生成所需的图形。这是两个例子。

示例1 :构建比例以显示labels的五个数字摘要,并以原始单位显示标签。

mtcars$qsec

enter image description here

示例2 :使用library(ggplot2) ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(mapping = aes(size = qsec^2)) + scale_size(name = "qsec", breaks = fivenum(mtcars$qsec)^2, labels = fivenum(mtcars$qsec)) 显示图例。 qsec^2包装器可让您将标签格式化得更好。

expression

enter image description here