» »

[Python + pyplot] Scatter plot in barve posameznih točk

[Python + pyplot] Scatter plot in barve posameznih točk

bluefish ::

Recimo, da imam sledeč primer:

x = range(5)
y = [5, 8, 4, 9, 12]

plt.figure()
plt.scatter(x, y, color='blue')
plt.show()


Kako bi z drugo barvo obarval le elementa y[0] in y[3]?

Preizkušal sem že več opcij pa mi nekako ne gre.
  • spremenil: bluefish ()

Raptor F16 ::

Če imaš vektor, ne moreš posebej pobarvati le izbranih elementov ?

Ali pa da plottaš modre in rdeče posebej, tako kot funkcije?

bluefish ::

Problem je v x osi. plt.scatter želi na vsak način enako število elementov. Načeloma to ne bi bil problem, vendar imam v array-u nan elemente. Če rišem grafa enega čez drugega, mi zaradi nan drugi graf enostavno prebarva prvega.

Zgodovina sprememb…

  • spremenil: bluefish ()

Raptor F16 ::

bluefish je izjavil:

Problem je v x osi. plt.scatter želi na vsak način enako število elementov. Načeloma to ne bi bilo problem, vendar imam v array-u nan elemente. Če rišem grafa enega čez drugega, mi zaradi nan drugi graf enostavno prebarva prvega.


Malo sem ven iz Pythona, ampak tole ne bi prijelo?
(nimam možnosti testirat na trenutni mašini)

x = range(5)
y = [5, 8, 4, 9, 12]

plt.figure()

plt.scatter(x, y, color='blue')
plt.scatter(x[0], y[0], color='red')
plt.scatter(x[3], y[3], color='red')

plt.show()


Mislim, če prav razumem, ti imaš dva vektorja. Na scatter plotu bi rad pokazal pikice z [xy] koordinatami. Če se prav spomnim, jih lahko posebej plottaš povrh.

bluefish ::

Ja, to deluje. Pri 20 točkah, kjer so v enem primeru obarvane tri, v drugem jih je 5 ipd. pa tole odpove.

Vem, čaranje s for loopom, ampak sem upal na bolj elegantno rešitev.

Zgodovina sprememb…

  • spremenil: bluefish ()

Raptor F16 ::

bluefish je izjavil:

Ja, to deluje. Pri 20 točkah, kjer so v enem primeru obarvane tri, v drugem jih je 5 ipd. pa tole odpove.

Vem, čaranje s for loopom, ampak sem upal na bolj elegantno rešitev.


Aha... ti bi rad...

Čakaj, tudi to deluje:
import matplotlib.pyplot as plt

x = range(5)
y = [5, 8, 4, 9, 12]



plt.scatter(x, y, color='blue')
plt.scatter([x[0],x[3]],[y[0], y[3]] , color='red')


plt.show()


Ti lahko sestaviš dva vektor poljubnih vrednosti iz prejšnjih dveh vektorjev. Meni izgleda bolj elegantna rešitev.

Kodo lahko probate tudi tukaj:
https://hub.gke.mybinder.org/user/ipyth...

Zgodovina sprememb…

bluefish ::

Sem naredil na ta način. Hvala.

Pri risanju s for zanko bi bil problem z label, ker ga potem v legendi ustvari za vsako iteracijo.

Raptor F16 ::

bluefish je izjavil:

Sem naredil na ta način. Hvala.

Pri risanju s for zanko bi bil problem z label, ker ga potem v legendi ustvari za vsako iteracijo.


Numpy as np (no problem) :D

Če ne drugega sem tudi svoje znanje malo obnovil. :))

Moram si Anacondo stegnit v kratkem. C++ me ni prepričal za drugo kot mikrokrmilnike.

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

c++ two dimensional array v classu

Oddelek: Programiranje
111393 (1196) Senitel
»

[JavaScript] Spreminjanje ozadja

Oddelek: Programiranje
7844 (788) Cvenemir
»

[php] phplot

Oddelek: Izdelava spletišč
111206 (1055) slovencl
»

Mirc za maca?

Oddelek: Programska oprema
5970 (905) IceIceBaby
»

Spreminanje vsebine CSS datotek z PHPjem

Oddelek: Izdelava spletišč
51166 (1130) njok

Več podobnih tem