我想绘制一个带标签的散点图,如下所示, 在牛fly。
(来源: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)
On Option是使用颜色,但这并不是很好,因为传说变得巨大(特别是在不那么简单的例子中)。
plot(x=X,y=Y, color=Labels)
答案 0 :(得分:7)
虽然@ Oxinabox的答案有效,但是Gadfly的方法是使用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)
这有很多好处,包括智能标签放置以避免标签重叠,或者您可以选择一些易于使用的规则,例如:centered
或below
。另外,它会从主题中选择字体/字体大小。
答案 1 :(得分:2)
您可以使用Compose注释执行此操作。
The Gadfly documentation on that is here.你可能从显示的简单例子中错过了它的真正力量。
Using Compose
plot(x=X, y=Y, Guide.annotation(compose(context(), text(X, Y, Labels))))