14

我正在使用Julia进行财务数据处理,然后根据财务数据绘制图表。

在图表的 X 轴上我在 Y 轴上绘制日期(每天的价格)我在绘制股票价格、MovingAverage13 和 MovingAverage21

我目前正在使用 DataFrames 来绘制数据

代码-

df=DataFrame(x=dates,y1=pricesClose,y2=m13,y3=m21)
l1=layer(x="x",y="y1",Geom.line,Theme(default_color=color("blue")));
l2=layer(x="x",y="y2",Geom.line,Theme(default_color=color("red")));
l3=layer(x="x",y="y3",Geom.line,Theme(default_color=color("green")));
p=plot(df,l1,l2,l3);
draw(PNG("stock.png",6inch,3inch),p)

我正在正确获取图表,但我无法在图表中添加一个图例,显示蓝线是收盘价 红线是移动平均线 13 绿线是移动平均线 21

我们如何在图表中添加图例?

4

2 回答 2

15

我从这个链接中的评论了解到,目前无法获得图层列表的图例。

Gadfly 基于 Hadley Wickhams 的 R ggplot2,因此通常的模式是将数据排列到具有离散列的 DataFrame 中以用于标记目的。在您的情况下,这种方法看起来像:

x = 1:10
df1 = DataFrame(x=x, y=2x, label="double")
df2 = DataFrame(x=x, y=x.^2, label="square")
df3 = DataFrame(x=x, y=1./x, label="inverse")

df = vcat(df1, df2, df3)

p = plot(df, x="x", y="y", color="label", Geom.line,
         Scale.discrete_color_manual("blue","red", "green"))

draw(PNG("stock.png", 6inch, 3inch), p)

股票.png

于 2014-02-16T11:55:50.663 回答
5

现在您可以尝试使用manual_color_key。此处需要对代码进行唯一更改:

p=plot(df,l1,l2,l3, Guide.ylabel("Some text"), Guide.title("My title"), Guide.manual_color_key("Legend", ["I'm blue l1", "I'm red l2", "I'm green l3"], ["blue", "red", "green"]))

于 2016-01-14T14:53:31.630 回答