3 votes

Quelle est la bonne façon de créer une barre de couleur pour les données discrètes dans Plots.jl ?

Disons que nous avons un paramètre discret, en fonction duquel nous voulons faire une coloration sur le graphique en utilisant Plots.jl avec le backend GR. Le type du paramètre (dans l'exemple ci-dessous, il s'agit de Int64) indique clairement qu'il est discret, mais si nous n'effectuons aucune action supplémentaire, une échelle de couleur continue lui sera appliquée dans la barre de couleur. Si nous spécifions explicitement le nombre de gradations de couleurs correspondant au nombre de classes discrètes, ou du moins si nous définissons explicitement la palette, alors dans ce cas, les gradations de couleurs intermédiaires disparaîtront, mais l'échelle restera essentiellement continue. Quelle est la bonne façon de créer une barre de couleur pour des données discrètes, où chaque classe correspond à une couleur distincte et à la valeur de cette classe ?

x = (1:1:7); y = (1:1:7); z = [0, 1, 2, 2, 1, 0, 0]
plot(x, y, zcolor = z, seriestype = :scatter, 
markersize=5, label = "points")

résultat :

enter image description here

x = (1:1:7); y = (1:1:7); z = [0, 1, 2, 2, 1, 0, 0]
plot(x, y, zcolor = z, seriestype = :scatter, 
markersize=5, label = "points", color=palette(:heat, 3))

ou

x = (1:1:7); y = (1:1:7); z = [0, 1, 2, 2, 1, 0, 0]
plot(x, y, zcolor = z, seriestype = :scatter, 
markersize=5, label = "points", color=palette(:heat))

résultat :

enter image description here

0voto

Bill Points 3435

Pour généraliser, lorsque vous faites de z une couleur discrète, vous devez utiliser

 color = palette(:mypalettename, length(unique(z)))

dans le cas de

plot(x, y, zcolor = z, seriestype = :scatter,
   markersize=5, label = "points",
   color = palette(:heat, length(unique(z))),
   colorbar_ticks = [0.3333, 1.0, 1.6667])

mais à partir de la version actuelle de Plots, je pense que colorbar_ticks n'est supporté que dans pyplot() -- voir https://docs.juliaplots.org/latest/generated/supported/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X