Julia 如何一次绘制一个简单的图形

Julia 如何一次绘制一个简单的图形,julia,Julia,我有一些简单的代码,一次计算一个值。我想要一个随着代码运行而更新的绘图。在每次迭代中,我计算y轴的一个新值,称为avesofar。我想用这个新值在x-index I处绘制另一个点 using Plots function hamming4(bits1::Integer, bits2::Integer) return count_ones(bits1 ⊻ bits2) end function random_strings2(n, N) mask = UInt128(1) &l

我有一些简单的代码,一次计算一个值。我想要一个随着代码运行而更新的绘图。在每次迭代中,我计算y轴的一个新值,称为avesofar。我想用这个新值在x-index I处绘制另一个点

using Plots

function hamming4(bits1::Integer, bits2::Integer)
    return count_ones(bits1 ⊻ bits2)
end

function random_strings2(n, N)
    mask = UInt128(1) << n - 1
    return [rand(UInt128) & mask for i in 1:N]
end

function find_min(strings, n, N)
    minsofar = n
    for i in 1:N
        for j in i+1:N
            dist = hamming4(strings[i], strings[j])
            if dist < minsofar
                minsofar = dist
            end
        end
    end
    return minsofar
end

function ave_min(n, N)
    ITER = 100
    strings = random_strings2(n, N)
    new_min = find_min(strings, n, N)
    avesofar = new_min
    # print("New min ", new_min, ". New ave ", avesofar, "\n")
    total = avesofar
    for i in 1:ITER-1
        strings = random_strings2(n, N)
        new_min = find_min(strings, n, N)
        avesofar = avesofar*(i/(i+1)) + new_min/(i+1)
        print("New min ", new_min, ". New ave ", avesofar, "\n")
    end
    return avesofar
end

N = 2^15
n = 99

print("Overall average ", ave_min(n, N), "\n")

您可以通过添加来更新绘图中的绘图!添加到函数名。因此,plotx,y将使用您的点创建初始打印,然后打印!xnew,ynew将使用新点更新最后一个绘图


因此,对于您的情况,只需添加绘图!i、 阿维索法尔在环路内。正如@przemyslaw szufel所提到的,您将使用散布/散布!如果不想用直线连接点。

以下是一次绘制一个点的方法:

using Plots
pyplot()
p = Plots.scatter(; lab="")
Plots.scatter!(p, [1], [2]; lab="point 1")
Plots.scatter!(p, [3], [4]; lab="point 2")
Plots.scatter!(p, [5], [6]; lab="point 3")

密谋,密谋!用于打印线而不是点。在Plots.jl API中,与PyPlot.jl相反,更新plot需要传递plot对象请参见下面的答案。如果正在更新的plot是当前活动的plot,则不需要传递plot对象。