4

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

4

2 回答 2

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")
)

阴谋

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

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")))
)
于 2014-12-10T02:05:55.983 回答
0

这种东西很简单,我的包https://github.com/tbreloff/Plots.jl

julia> using Plots; scatter(rand(10,3), c=[:green,:red,:blue])

在此处输入图像描述

于 2015-10-04T14:23:41.130 回答