Wie ändere ich sowohl die Form als auch die Farbe eines einzelnen Streupunkts in Python Matplotlib?Python

Python-Programme
Anonymous
 Wie ändere ich sowohl die Form als auch die Farbe eines einzelnen Streupunkts in Python Matplotlib?

Post by Anonymous »

Ich versuche derzeit, einige Daten in eine Tabelle in Python zu importieren, um ein Diagramm einer Variablen gegen eine andere zu erstellen. Ich möchte auch jeden Datenpunkt nach zwei der anderen Variablen in derselben Tabelle gruppieren. . Die andere Variable (die ich der Form zuweisen möchte) hat nur 5. Beide kann die Daten leicht gruppieren. Das Problem ist nur mit der Darstellung verbunden, da nicht alle Gruppen alle drei Optionen der "Farbvariablen" enthalten. Ich kann das Streudiagramm leicht Formen oder Farben zeigen. Wenn ich sie kombiniere, habe ich ein Problem. Für jeden Datenpunkt gibt es jedoch zwei Formensätze: eine, die die richtige Form ist, und der andere nur ein Standardpunkt. Wenn ich jedoch entferne, was die doppelten Punkte verursacht, sind die Farben nicht korrekt. Daten sind so simpel: < /p>
import matplotlib.pyplot as plt
import numpy as np

r = np.array([600, 2000, 980, 1770, 920, 1100, 220])
t = np.array([2.7, 12.67, 10.54, 1.3, 16.1, 0.92, 13.56])
spectra_type = np.array(['A', 'A', 'B', 'A', 'C', 'B', 'A'])
spectra_num = np.array([{'A': 0, 'B': 1, 'C': 2} for i in spectra_type])

i = np.array(['Shape1','Shape2','Shape3','Shape4','Shape5','Shape2','Shape4'])
shape1 = np.where(i=='Shape1')[0]
shape2 = np.where(i=='Shape2')[0]
shape3 = np.where(i=='Shape3')[0]
shape4 = np.where(i=='Shape4')[0]
shape5 = np.where(i=='Shape5')[0]

plt.figure('fig 1')
plt.xlabel('x')
plt.ylabel('y')

plt.scatter(t[shape1], r[shape1], c=spectra_num[shape1], marker='D', label='Shape1')
plt.scatter(t[shape2], r[shape2], c=spectra_num[shape2], marker='^', label='Shape2')
plt.scatter(t[shape3], r[shape3], c=spectra_num[shape3], marker='o', label='Shape3')
plt.scatter(t[shape4], r[shape4], c=spectra_num[shape4], marker='s', label='Shape4')
plt.scatter(t[shape5], r[shape5], c=spectra_num[shape5], marker='*', label='Shape5')

first_legend = plt.legend(loc='upper left')
plt.gca().add_artist(first_legend)

scatter = plt.scatter(t, r, c=spectra_num)
plt.legend(handles=scatter.legend_elements()[0], labels=['A', 'B', 'C'], title='Colour')
< /code>
Dies gibt mir das folgende Diagramm, da Sie sehen können, dass die Formen alle da sind, aber mit einer anderen "regulären" Form überlagert werden. < /p>

Jeder Rat wäre sehr geschätzt!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post