Ich möchte mehrere Farben in einem mit Matplotlib erstellten Marker verwenden. Doing zwei Farben war nicht so schwer, nach this example, und mit einigen zusätzlichen Informationen aus this documentation. Ich frage mich jedoch, ob es möglich ist, einen Marker mit mehr als 2 Farben zu erstellen. Ich bin in einer Situation, wo ich möchte, dass ein einzelner Marker tatsächlich 3 verschiedene Farben bekommt (ein Punkt auf einer Karte bezieht sich auf drei verschiedene Beobachtungen).Mehrere Farben in Matplotlib-Markierungen
0
A
Antwort
1
Sie können dies durch das matplotlib Beispiel folgende hier gezeigt:
matplotlib.org/examples/api/scatter_piecharts.html
Im Folgenden werde ich das Beispiel etwas ax.plot
statt ax.scatter
zu verwenden, haben sich geändert.
Grundsätzlich bedeutet dies, alle Marker die gleiche Größe haben müssen, und statt mit dem s
kwarg für scatter
, verwenden Sie die ms
(oder markersize
) kwarg für plot
.
Außerdem müssen Sie anstelle von facecolor
markerfacecolor
definieren.
Abgesehen von diesen Änderungen bleibt alles andere das gleiche wie im ursprünglichen Beispiel.
"""
This example makes custom 'pie charts' as the markers for a scatter plot
Thanks to Manuel Metz for the example
"""
import math
import numpy as np
import matplotlib.pyplot as plt
# first define the ratios
r1 = 0.2 # 20%
r2 = r1 + 0.4 # 40%
# define some sizes of the plot marker
markersize = 20 # I changed this line
# calculate the points of the first pie marker
#
# these are just the origin (0,0) +
# some points on a circle cos,sin
x = [0] + np.cos(np.linspace(0, 2*math.pi*r1, 10)).tolist()
y = [0] + np.sin(np.linspace(0, 2*math.pi*r1, 10)).tolist()
xy1 = list(zip(x, y))
s1 = max(max(x), max(y))
# ...
x = [0] + np.cos(np.linspace(2*math.pi*r1, 2*math.pi*r2, 10)).tolist()
y = [0] + np.sin(np.linspace(2*math.pi*r1, 2*math.pi*r2, 10)).tolist()
xy2 = list(zip(x, y))
s2 = max(max(x), max(y))
x = [0] + np.cos(np.linspace(2*math.pi*r2, 2*math.pi, 10)).tolist()
y = [0] + np.sin(np.linspace(2*math.pi*r2, 2*math.pi, 10)).tolist()
xy3 = list(zip(x, y))
s3 = max(max(x), max(y))
fig, ax = plt.subplots()
# Here's where I made changes
ax.plot(np.arange(3), np.arange(3), marker=(xy1, 0),
ms=markersize, markerfacecolor='blue') # I changed this line
ax.plot(np.arange(3), np.arange(3), marker=(xy2, 0),
ms=markersize, markerfacecolor='green') # I changed this line
ax.plot(np.arange(3), np.arange(3), marker=(xy3, 0),
ms=markersize, markerfacecolor='red') # I changed this line
plt.margins(0.05)
plt.show()
Verwandte Themen
- 1. Imagecolortransparent() für mehrere Farben
- 2. erzeugen mehrere Farben mit Javascript
- 3. Mehrere Farben im Toolbar-Titel?
- 4. Mehrere Farben gezeichnet für NSBezierPath in Zyklus
- 5. Mehrere Farben in der gleichen CSS-Klasse?
- 6. Fraktion in der Legende, mehrere Farben
- 7. JavaFX Mehrere Farben in textarea (JavaFX 8)
- 8. Mehrere Farben für jedes Element in JComboBox
- 9. Mehrere Farben zu Balkendiagrammen Swift übereinander
- 10. WPF Richtextbox mehrere Farben und Schriftart
- 11. FreeType2 Mehrere Zeichen und zufällige Farben
- 12. Coloring mehrere Zellen, in verschiedenen Farben, basierend auf ursprünglichen Zellenwert
- 13. ist es möglich, mehrere Farben in UILabel zu setzen?
- 14. Anzeigen der richtigen Farben in der Legende für mehrere Schichten
- 15. Wie mache ich mehrere Farben Tableiste in Swift 3
- 16. Wie verwendet man mehrere Farben in map.plot Kwargs für Python
- 17. Mehrere Ränder Farben/Stil für ein FE-Netz in paraview
- 18. MATLAB: Weisen Sie Text in der Legende mehrere Farben zu
- 19. Pyplot axvspan: Mehrere Farben in einem Bereich (vertikal)
- 20. Messing Etiketten Farben in matplotlib
- 21. Farben in Emacs Pufferliste
- 22. Benutzerdefinierte Farben in UITabBar
- 23. Benannte Farben in tkinter
- 24. Farben in ggplot% Grafik
- 25. Angrenzende Farben in swift
- 26. Datensätze in RDL-Farben
- 27. Reaktive Farben in glänzend
- 28. Passende Farben in Eclipse
- 29. umgekehrte Farben in colorNumeric()
- 30. Etikett Text haben mehrere Schriftarten, Stil und Farben
http://matplotlib.org/examples/api/scatter_piecharts.html – tom
@ Tom tut das auch mit normalen Plots (plt.plot (..)) arbeiten? –
@tom oder andere Marker –