3

我想创建一个直方图,它将显示图中有多少个不同值的顶点。我使用 Gadfly 用 JULIA 语言绘制这个直方图。

p = Gadfly.plot(x=int(array[1:end]), Geom.histogram, Theme(
 panel_fill=color("White"),
 panel_opacity=0.1,
 panel_stroke=color("Blue"),
               background_color=color("White")
                 # width of line
 ), Guide.ylabel("K core"),
 Guide.xlabel("Vertices"))

上面的代码绘制直方图,之后我用另一个函数将它保存为 png 格式。变量数组的内容为[1,1,1,3,3,3,3,3,3,3]

在此处输入图像描述

这是我运行这段代码后得到的。现在这个例子中的图有 8 个值为 3 的顶点和 2 个值为 1 的顶点,gadfly 给了我上面的直方图。困扰我的是x轴。我不知道为什么值 1 从 1 到 3 显示,值 3 从 3 到 5 显示。我想让它更精确但不知道如何。我尝试了很多代码的变体和缩写,但我无法让它工作。

我正在寻找的是,在 x 轴上会有值 1 和 3,条形不会那么粗,并且更容易看到值是 1 和 3。

有什么帮助吗???

4

2 回答 2

2

您可以Guide.xticks为此使用:

plot(x=rand(10), y=rand(10), Geom.line, Guide.xticks(ticks=ticks, orientation=:vertical))
于 2016-03-02T18:36:44.230 回答
1

尝试解决大约 4 小时,并在发布问题后 5 分钟内解决:D

为了更精确,需要做的就是在 Geom.histogram 之后添加Scale.x_discrete绘图函数。

p = Gadfly.plot(x=int(array[1:end]), Geom.histogram, Scale.x_discrete, Theme(
panel_fill=color("White"),
panel_opacity=0.1,
panel_stroke=color("Blue"),
           background_color=color("White")
             # width of line
), Guide.ylabel("K core"),
Guide.xlabel("Vertices"))

现在情节更容易阅读。最后一件事是对数组进行排序,以便对 x 轴上的值进行排序。

在此处输入图像描述

于 2016-03-02T18:36:21.217 回答