Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unrelated println statement leads to blank plot #559

Open
StephenVavasis opened this issue Oct 16, 2022 · 0 comments
Open

unrelated println statement leads to blank plot #559

StephenVavasis opened this issue Oct 16, 2022 · 0 comments

Comments

@StephenVavasis
Copy link

I encountered a strange bug in PyPlot that a println statement in a certain place in my code causes a plot to come out completely blank. Below is a stripped-down version of my code. If I include the code as is, then it makes three plots, but the third plot window is empty. However, if I comment out the println statement on l. 23, then the third plot appears as expected. This is Julia version 1.8.2, PyPlot was just installed today (2022-10-16), python version (according to Pyplot) is 3.9.12, matplotlib version (according to the error message when I type hold(true) at the REPL) is 3.5.2, and the platform is Windows 10.

module driver_ppbug
using LinearAlgebra
using PyPlot


function admm1(a)
    n = size(a,2)
    clusterID = vcat(ones(Int(n/2)),2*ones(Int(n/2)))
    itcount = 1
    return clusterID, itcount
end
    

function find_k_largest_clusters(clusterID, k1)
    return vcat([[1,2,3,4], [5,6,7]], [[i] for i = 8 : length(clusterID)])
end

function plotresult(a, clusterID)
    n = size(a,2)
    colors1 = "rgbcmky"
    mxcolor = length(colors1)
    result = find_k_largest_clusters(clusterID, mxcolor)
    println("result lens = ", [length(q) for q in result])
    plotted = [false for i = 1 : n]
    for i = 1 : mxcolor
        if length(result[i]) > 1
            plot(a[1,result[i]], a[2,result[i]], "*" * colors1[[i]])
        else
            break
        end
       plotted[result[i]] .= true
    end
    plot(a[1, .!plotted], a[2, .!plotted], "." * colors1[[mxcolor]])
    axis("equal")
    nothing
end    


function gm_generator(n)
    a = hcat(collect(1.0:1.0:n), sin.(1.0:1.0:n))'
    compID = vcat(ones(Int(n/2)), 2*ones(Int(n/2)))
    weight = ones(n)
    return a, compID, weight
end


function mxgau(n, sigma, lambdascale1, lambdascale2)
    a, compID, weight = gm_generator(n)
    sub1 = findall(compID .== 1)
    sub2 = findall(compID .== 2)
    close("all")
    figure(1)
    plot(a[1,sub1], a[2,sub1], "*r")
    plot(a[1,sub2], a[2,sub2], "*g")
    axis("equal")
    figure(2)
    plot(a[1,:], a[2,:], "*k")
    axis("equal")
    clusterID, itcount1 = admm1(a)
    figure(3)
    plotresult(a, clusterID)
    println("itcount1 = ", itcount1)
    nothing
end

mxgau(20, .3, .3, .1)

end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant