[PYTHON] Différentes barres de couleurs avec Matplotlib

Dans le cas d'un tracé bidimensionnel, les types de données pouvant être exprimés sont jusqu'à trois types en utilisant l'axe des x, l'axe des y et la couleur. Suite à l'édition MATLAB (https://qiita.com/Yuricst/items/1594cacb930bd4fa6d63), une note sur l'ajout d'une barre de couleurs dans le tracé avec Matplotlib en Python. (Même si ce n'est pas la solution optimale, il semble que cette méthode puisse être utilisée à temps. Elle sera mise à jour de temps en temps.)

Pour le diagramme de dispersion (`` plt.scatter '')

Dans le cas de la dispersion, c'est assez simple, spécifiez le tableau que vous souhaitez utiliser comme paramètre de couleur lorsque vous utilisez scatter () '' avec c ''`, et spécifiez la carte de couleur avec cmap``` Précisez simplement avec. En guise de mise en garde, le fig.colorbar () '' utilisé pour ajouter une barre de couleurs nécessite un objet mappable, donc le scatter lui-même doit être affecté en tant qu'objet (im0 dans l'exemple ci-dessous). .. Lorsque vous utilisez le sous-tracé, si les paramètres de couleur sont identiques, il n'y a pas de problème même si vous n'affectez pas tous les sous-tracés en tant qu'objets.

# assign color array
cc = transfer_df['Jacobi_LPO']

plt.rcParams["font.size"] = 16
fig, axs = plt.subplots(1, 3, figsize=(15, 6))
im0 = axs[0].scatter(transfer_df['loi_cost']*1000, transfer_df['incl'], c=cc, cmap='plasma', s=15, marker='x')
axs[0].set_xlabel('LOI cost [m/sec]')
axs[0].set_ylabel('Inclination [deg]')
axs[0].grid(True)

axs[1].scatter(transfer_df['loi_cost']*1000, transfer_df['raan'], c=cc, cmap='plasma', s=15, marker='x')
axs[1].set_xlabel('LOI cost [m/sec]')
axs[1].set_ylabel('RAAN [deg]')
axs[1].grid(True)

axs[2].scatter(transfer_df['loi_cost']*1000, -transfer_df['tof_EM_SOI']*Tstar_EM/(60*60*24), c=cc, cmap='plasma', s=15, marker='x')
axs[2].set_xlabel('LOI cost [m/sec]')
axs[2].set_ylabel('Tof til lunar SOI [days]')
axs[2].grid(True)


fig.colorbar(im0, label='LPO Jacobi')
plt.suptitle(f'Moon SOI leg, beta = {transfer_df.iloc[0,:]['beta0']}')
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()

Dans le cas du locus (`` `plt.plot```)

Dans le cas de l'intrigue, le processus devient un peu compliqué. Grosso modo --Enregistrez les données que vous souhaitez tracer en points``` --Assignez des `` points '' et une barre de couleur dans LineCollection

# plot of the transfer (xy-plot)
fig, axs = plt.subplots(1, 1, figsize=(12,10))
plt.rcParams["font.size"] = 20

for j in tqdm( range(len(df_peritarg)) ):  
    # generate segments
    points = np.array([proptry["x_arr"] *Lstar , proptry["y_arr"] *Lstar]).T.reshape(-1, 1, 2)
    segments =np.concatenate([points[:-1], points[1:]], axis=1)
    
    loi_color = df_peritarg.iloc[j,:]["time2perilune"]*Tstar/86400 * np.ones(( len(proptry["x_arr"]) ,))
    
    # create color bar
    norm = plt.Normalize(min( df_peritarg["time2perilune"] )*Tstar/86400, max( df_peritarg["time2perilune"])*Tstar/86400)
    lc = LineCollection(segments, cmap='Reds', norm=norm)
    # Set the values used for colormapping
    lc.set_array( loi_color )
    lc.set_linewidth(0.8)
    line = axs.add_collection(lc)

# display colorbar
fig.colorbar(line, ax=axs, label="Transfer time [days]")

axs.grid()
axs.set_title(f'Targeting from {familydf.iloc[0,:]["family"]}')
axs.set_xlabel('x [km]')
axs.set_ylabel('y [km]')
axs.set_xlim(300000, 500000)
axs.set_ylim(-60000, 60000)
axs.set_aspect('equal')

Recommended Posts

Différentes barres de couleurs avec Matplotlib
Japonais avec matplotlib
Animation avec matplotlib
histogramme avec matplotlib
Faire une animation avec matplotlib
Graphique 2 axes avec Matplotlib
Carte thermique par Python + matplotlib
Graphique de bande avec matplotlib
Apprenez avec Chemo Informatics Matplotlib
Dessin en temps réel avec matplotlib
Graphique 3D avec matplotlib
Ajustez les axes avec matplotlib
Graphique des données Excel avec matplotlib (1)
Essayez d'utiliser matplotlib avec PyCharm
Graphique des données Excel avec matplotlib (2)
Ajout d'une seule ligne avec divers scripts
Bar plot empilable avec matplotlib
Manipulez diverses bases de données avec Python
Développé avec Choregraphe et divers mémorandums
Sélectionnez les couleurs en dégradé avec matplotlib
Animer plusieurs graphiques avec matplotlib
Créer une animation de tracé avec Python + Matplotlib
Manuel de graphisme Python avec Matplotlib.
Affichage des inférences et des résultats avec Tensorflow + matplotlib
Japaneseize Matplotlib avec Alpine en utilisant Docker
Dessinez le japonais avec matplotlib sur Ubuntu
Dessinez un graphique lâche avec matplotlib
Traçage de données polyvalent avec pandas + matplotlib
Divers réglages fins avec Mobilenet v2
Heatmap avec dendrogramme en Python + matplotlib
Réglage facile de la police japonaise avec matplotlib
Dessinez facilement des graphiques avec matplotlib
Couleur en continu avec le diagramme de dispersion matplotlib
Dessinez Riapnov Fractal avec Python, matplotlib
Quand matplotlib ne fonctionne pas avec python2.7
Effectuer un tracé de probabilité normale logarithmique avec Python, matplotlib
Animation facile avec matplotlib (mp4, gif)
Écrire un histogramme empilé avec matplotlib
Implémentez "Data Visualization Design # 2" avec matplotlib
Gère divers formats de date avec des pandas
Comment titrer plusieurs figures avec matplotlib
[Python] Définissez la plage du graphique avec matplotlib
Programmation GUI à l'aide de kivy ~ Partie 4 Divers boutons ~
Ajustez l'espacement entre les chiffres avec Matplotlib
Alignez la taille de la barre de couleurs avec matplotlib
Essayez de dessiner une distribution normale avec matplotlib
Faire une figure partiellement zoomée avec matplotlib
Ecrire des graphiques SVG avec matplotlib avec heroku
Afficher le graphique japonais avec VS Code + matplotlib
Carte thermique pour la recherche de grille avec Matplotlib
Définissez la couleur des xticklabels individuellement avec matplotlib
Dessinez une étiquette d'axe hiérarchique avec matplotlib + pandas
[Python] Rendons matplotlib compatible avec le japonais
1. Statistiques apprises avec Python 1-3. Calcul de diverses statistiques (statistiques)
Afficher les marqueurs au-dessus de la bordure avec matplotlib
Alignez la barre de couleurs sur la figure avec matplotlib
[Mémo Jupyter Notebook] Afficher les kanji avec matplotlib
Différentes façons de détruire des ressources avec une portée
Dessinez un joli graphique circulaire avec matplotlib
Définissez les paramètres communs avec le sous-graphique de matplotlib