如何在一个Gadfly图中过度绘制多个数据数组?

Dar*_*enW 4 plot julia gadfly

我正在使用Gadfly在Julia中绘制数据.我有x =一个浮点数组,以及几个匹配长度的y1,y2,y3 ...... 如何在一个Gadfly图中以绿色,(x,y2)以红色等绘制所有点(x,y1)?

Vin*_*ynd 6

您可以将数据放在DataFrame中,包含三列x,ygroup,并将该组用作颜色美学.

# Sample data
n  = 10
x  = collect(1:n)
y1 = rand(n)
y2 = rand(n)
y3 = rand(n)

# Put the data in a DataFrame
using DataFrames
d = DataFrame( 
  x = vcat(x,x,x),
  y = vcat(y1,y2,y3),
  group = vcat( rep("1",n), rep("2",n), rep("3",n) )
)

# Plot
using Gadfly
plot( 
  d, 
  x=:x, y=:y, color=:group, 
  Geom.point,
  Scale.discrete_color_manual("green","red","blue")
)
Run Code Online (Sandbox Code Playgroud)

情节

正如评论中所建议的那样,您还可以使用图层:

plot(
  layer(x=x, y=y1, Geom.point, Theme(default_color=color("green"))),
  layer(x=x, y=y2, Geom.point, Theme(default_color=color("red"))),
  layer(x=x, y=y3, Geom.point, Theme(default_color=color("blue")))
)
Run Code Online (Sandbox Code Playgroud)

  • 数据帧方法是您想要做的最简单的方法.然而,对于更复杂的情节,您还可以查看Gadfly的图层.在单个图中创建多个图层可以为更复杂的数据集完成相同的操作. (3认同)