Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

unrelated println statement leads to blank plot

Abierto
#559 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
julia, matplotlib, python

Línea de trabajo

Reproduce el comportamiento informado ejecutando el módulo y llamando a mxgau(20, .3, .3, .1) con las versiones indicadas de Julia, PyPlot, Python y matplotlib. Empieza por plotresult y las llamadas a figure en mxgau, y después compara las ejecuciones con y sin println; la tarea estará terminada cuando expliques la tercera figura en blanco y verifiques que los tres gráficos se renderizan correctamente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Julia
Estrellas
489
Forks
90
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaPy/PyPlot.jl

Todos los issues de JuliaPy/PyPlot.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.