7

我想在 Gadfly 中绘制一个带标签的散点图,如下所示。

像这个例子 (来源: http: //support.sas.com/documentation/cdl/en/statug/63033/HTML/default/images/renda.png

我怎样才能做到这一点?

散点图很简单:

using Gadfly
X = [1, 2, 2, 3, 3, 3, 4]
Y = [4, 4, 7, 7, 9, 1, 8]
Labels = ["bill", "susan", "megan", "eric", "fran", "alex", "fred"]

plot(x=X, y=Y)

选项是使用颜色,但这不是很好,因为传说变得很大(特别是在比这更简单的例子中)。

plot(x=X,y=Y, color=Labels)

颜色

4

2 回答 2

8

虽然@Oxinabox 的答案有效,但牛虻的方式是使用Geom.label,例如

using Gadfly
X = [1, 2, 2, 3, 3, 3, 4]
Y = [4, 4, 7, 7, 9, 1, 8]
Labels = ["bill", "susan", "megan", "eric", "fran", "alex", "fred"]

plot(x=X, y=Y, label=Labels, Geom.point, Geom.label)

牛虻情节

这有很多好处,包括智能标签放置以避免标签重叠,或者您可以从一些易于使用的规则中进行选择,例如:centeredbelow。另外,它会从主题中获取字体/字体大小。

于 2015-02-23T01:55:25.450 回答
2

您可以使用Compose注释来做到这一点。

牛虻文档在这里。您可能从所示的简单示例中错过了它的真正力量。

Using Compose
plot(x=X, y=Y, Guide.annotation(compose(context(), text(X, Y, Labels))))

带标签

于 2015-02-23T01:05:20.363 回答