如何在unicodeploy .jl中绘制多个图?

  • 本文关键字:绘制 unicodeploy jl julia
  • 更新时间 :
  • 英文 :


我想绘制多条线(这里简化为两条),但不知道如何在同一图上绘制不同的颜色。这是分隔图形的版本。

using UnicodePlots, DataFrames
function job()
names, data = ["A", "B"], [
DataFrame("x"=>[1, 2, 3], "y"=>[3, 5, 7]),
DataFrame("x"=>[1, 2, 3], "y"=>[8, 2, 6]),
]
y_min, y_max = typemax(Int64), typemin(Int64)
y_min = min(minimum(data[1].y), minimum(data[2].y))
y_max = max(maximum(data[1].y), maximum(data[2].y))
ylim = (y_min, y_max)
for i = 1:length(names)
p = lineplot(data[i].x, data[i].y, name=names[i], ylim=ylim)
show(p)
println("")
#if i == 1  
#    p=lineplot(data[i].x, data[i].y, name=names[i], ylim=ylim)
#else  # failed for p undefined when i == 2
#    lineplot!(p, data[i].x, data[i].y, name=names[i], ylim=ylim)
#end
end
#show(p)
println("")
end
job()

基本正确。下面是固定的版本:

using UnicodePlots, DataFrames
function job()
names, data = ["A", "B"], [
DataFrame("x"=>[1, 2, 3], "y"=>[3, 5, 7]),
DataFrame("x"=>[1, 2, 3], "y"=>[8, 2, 6]),
]
y_min, y_max = typemax(Int64), typemin(Int64)
y_min = min(minimum(data[1].y), minimum(data[2].y))
y_max = max(maximum(data[1].y), maximum(data[2].y))
ylim = (y_min, y_max)
local p
for i = 1:length(names)
if i == 1  
p=lineplot(data[i].x, data[i].y; name=names[i], ylim=ylim)
else
lineplot!(p, data[i].x, data[i].y; name=names[i])
end
end
show(p)
println("")
end
job()

问题:

  • 当添加另一条线时,不能改变轴。
  • 循环中的变量需要在外部定义以扩展其作用域。

我想就是这样了。

最新更新