J'ai essayé de résumer tous les graphiques Python utilisés dans la recherche par des étudiants diplômés en sciences actifs [Basique]

Pour la version avancée, accédez à ici https://qiita.com/coffiego/items/dfabde5f8588723b32d6

introduction

Je suis actuellement étudiant en master de deuxième année. J'étudie l'atmosphère de Mars à l'aide de la simulation numérique. J'analysais les résultats obtenus par simulation numérique principalement en utilisant Python, j'ai donc essayé de résumer toutes les fonctions utilisées dans le processus. Veuillez noter qu'il n'est pas exhaustif. .. .. Je viens de regarder la documentation et j'ai eu du mal à l'utiliser, donc j'espère que si quelqu'un va utiliser les outils de visualisation de Python, cela aidera!

Cible

Puisqu'il s'agit d'une édition de base, cet article ne traite que des fonctions de base. Cet article décrit tous les éléments qui dessinent le graphique ci-dessous. Le dernier exemple de code se trouve au bas de l'article. (Si vous voulez vous rappeler comment tracer, je pense que cet échantillon est suffisant) Screen Shot 2020-03-18 at 17.55.44.png

Bibliothèque à utiliser

Les bibliothèques utilisées dans cet article sont les suivantes. Il n'y a aucun problème si vous copiez et collez le code suivant sur le code pour le moment.

import matplotlib.pyplot as plt #En fait, tracer
import numpy as np #Organiser les données

En fait, tracer

Parce que c'est une édition basique

1. Tracez les données 1 [x1, x2, x3 ,,,] et les données 2 [y1, y2, y3 ,,,] sur l'axe horizontal et l'axe vertical.
2. Tracez y = f (x)
3. Explication des options de décoration de parcelle (couleur, type de ligne, etc.)

1. Tracez [x ,,,] et [y ,,,]

Je pense que c'est beaucoup dans d'autres articles, mais je vais le laisser comme base pour le moment. C'est le plus élémentaire. Tracez les données x sur l'axe horizontal et les données y sur l'axe vertical.

import matplotlib.pyplot as plt #En fait, tracer
import numpy as np #Organiser les données

X = np.linspace(1,10,num=10) #1 à 10 num=Faites une rangée divisée en 10 parties égales[1,2,3,,,,10]
#X = [1,2,3,4,5,6,7,8,9,10]Pareil que
Y = np.random.rand(10) #nombre aléatoire(0~1)Génère une colonne de taille 10 composée de

plt.plot(X,Y)#terrain

La base est plt.plot (colonne de données 1, colonne de données 2). C'est sale parce que je trace juste les nombres aléatoires, mais je peux faire un graphique comme celui-ci. Screen Shot 2020-03-18 at 14.41.25.png

2. Tracez y = f (x)

Dans ce qui suit, tracez y = x ^ 2

def fun(x): 
    y = x**2 #Écrivez votre propre fonction ici
    #ex)
    #y = np.sin(x)
    #y = np.log(x)
    return y

X = np.linspace(1,10,num=10) #1 à 10 num=Faites une rangée divisée en 10 parties égales[1,2,3,,,,10]
Y = fun(X) #Créer une colonne de données y
plt.plot(X, Y)#terrain
#plt.plot(colonne de x,colonne de y,options)Peut être tracé avec

Je me sens comme cela. Screen Shot 2020-03-18 at 14.27.36.png

3. Diverses options de tracé! (C'est le lol principal)

--Couleur --Légende (réglage de la position, taille)

· Couleur de la ligne

Pour changer la couleur de la ligne, ajoutez les options suivantes.

plt.plot(X,Y,color='k') #k est noir

Changez simplement la partie de color = 'k'. Seules les couleurs de base sont répertoriées ci-dessous. Screen Shot 2020-03-18 at 15.03.05.png Veuillez consulter ce document officiel pour une liste de nombreuses couleurs.

・ Légende (étiquette)

Vous pouvez le faire avec:

plt.legend(loc='lower right',prop={'size':15})
import matplotlib.pyplot as plt #En fait, tracer
import numpy as np #Organiser les données
def fun(x): 
    y = 2*x #Écrivez votre propre fonction ici
    return y
X = np.linspace(1,10,num=100) #1 à 10 num=Faites une rangée divisée en 100 parties égales
Y1 = fun(X)
Y2 = 20*np.sin(X) #y=20sin(x)
plt.plot(X,Y1,color='b',label='your original')#Tracer Y1
plt.plot(X,Y2,color='r', label='sin')#Tracer Y2
plt.legend(loc='lower right',prop={'size':15})#C'est la légende

La taille peut être modifiée avec prop = {'size': 15}. La position de la légende peut être modifiée avec loc = 'en bas à droite'. Il peut être placé dans la position approximative indiquée ci-dessous. Screen Shot 2020-03-18 at 15.33.57.png Cliquez ici pour plus de détails

L'échantillon ressemble à ceci. Vous pouvez ajouter une légende avec plt.legend (). Screen Shot 2020-03-18 at 15.23.07.png

-Ajouter une étiquette d'axe et ajuster l'axe (plage, taille des caractères, échelle du journal, échelle)

Étiquette d'axe ajoutée

plt.xlabel('xaxis',size='10') #Ajouter une étiquette sur l'axe des x, size='À la taille que vous aimez'
plt.ylable('yaxis',size='10') #Ajouter une étiquette à l'axe y

Réglage de l'axe (plage, échelle, taille de l'échelle)

#intervalle
plt.xlim((0,10)) #Gamme de x: 0-10
plt.ylim((0,20)) #Gamme de y:0-20
#Échelle logarithmique
plt.xscale('log')#x à logscale
plt.yscale('log')#logscale y
#Réglage de la taille de l'échelle
plt.tick_params(labelsize=12) #labelsize=À la taille que vous aimez

Ceci est un exemple de code que j'ai ajouté de différentes manières.

import matplotlib.pyplot as plt #En fait, tracer
import numpy as np #Organiser les données
def fun(x): 
    y = 2**x #Écrivez votre propre fonction ici
    return y

X = np.linspace(1,10,num=100) #1 à 10 num=Faites une rangée divisée en 100 parties égales
Y1 = fun(X)
Y2 = np.exp(X)
plt.plot(X,Y1,color='b',label=r'$y=2^x$')#terrain
plt.plot(X,Y2,color='r', label=r'$y=e^x$')
plt.legend(loc='lower right',prop={'size':18}) #Ajouter une légende
plt.xlabel('xaxis',size='20') #Ajouter une étiquette sur l'axe des x, size='À la taille que vous aimez'
plt.ylabel('yaxis',size='20') #Ajouter une étiquette à l'axe y
plt.xlim((0,10)) #Gamme de x: 0-10
plt.ylim((0,100)) #Gamme de y:0-20
plt.tick_params(labelsize=15) #labelsize=À la taille que vous aimez

Cela devrait ressembler au graphique ci-dessous. Screen Shot 2020-03-18 at 17.05.02.png

・ Mettez une formule sur l'étiquette

En fait, j'ai ajouté une formule à l'étiquette de caractère dans l'exemple de code ci-dessus.

plt.plot(X,Y1,color='b',label=r'$y=2^x$')#terrain

Pour mettre une formule dans les lettres de l'étiquette,

label=r'$Formule$'

Vous pouvez insérer une formule en écrivant comme ceci. Cette formule est au format Latex.

· Type de ligne

C'est une option pour en faire une ligne brisée ou afficher des points de données au lieu d'une simple ligne.

Est utilisé. Voici un exemple.

#linestyle
X = np.linspace(1,10,num=100)
Y1=X
Y2=2*X
Y3=3*X
Y4=4*X
Y5=5*X
plt.plot(X,Y1,linestyle=':',label=':')#terrain
plt.plot(X,Y2,linestyle='-.',label='-.')
plt.plot(X,Y3,linestyle='--',label='--')
plt.plot(X,Y4,linestyle='-',label='-')
plt.legend(prop={'size':18})
Screen Shot 2020-03-18 at 17.20.56.png
#Add marker
X = np.linspace(1,10,num=10)
Y1=X
Y2=2*X
Y3=3*X
Y4=4*X
Y5=5*X
plt.plot(X,Y1,marker='.',markersize='10',label='.')#adding marker
plt.plot(X,Y2,marker='v',markersize='12',label='v')#Changer la taille avec Markersize
plt.plot(X,Y3,marker='1',markersize='14',label='1')
plt.plot(X,Y4,marker='*',markersize='16',label='*')
plt.legend(prop={'size':18})
Screen Shot 2020-03-18 at 17.31.21.png

Il existe de nombreux types de marqueurs dans les Documents officiels.

・ Mettez les caractères directement dans le graphique

Il y a des moments où vous voulez écrire des caractères directement sur un graphique au lieu d'une légende, non? C'est utile dans un tel cas

#Coordonner(x,y)À'lettre'À'Taille préférée'Insérer dans la taille de
plt.text(x,y,'lettre',size='Taille préférée') #x:coordonnée x y:coordonnée y

est. Ceci est un exemple de code.

X = np.linspace(1,10,num=100)
Y=X
plt.plot(X,Y)
plt.text(2,2,'(2,2)',size='10')
plt.text(4,8,'(4,8)',size='15')
plt.text(8,3,'(8,3)',size='20')
plt.xlabel('xaxis') #Ajouter une étiquette sur l'axe des x, size='À la taille que vous aimez'
plt.ylabel('yaxis') #Ajouter une étiquette à l'axe y
Screen Shot 2020-03-18 at 17.43.35.png C'est facile! # Exemple de code final ```python #Échantillon final import matplotlib.pyplot as plt #En fait, tracer import numpy as np #Organiser les données

def fun(x): y = 2**x #Écrivez votre propre fonction ici return y

plt.figure(dpi=100) #résolution(dpi)changement X = np.linspace(1,10,num=50) #1 à 10 num=Faites une rangée divisée en 100 parties égales Y1 = fun(X)#Créer des données Y Y2 = np.exp(X) plt.plot(X,Y1,color='g',label=r'y=2^x', linestyle='-.')#terrain plt.plot(X,Y2,color='r', label=r'y=e^x', marker='*',markersize='16')#terrain plt.legend(loc='lower right',prop={'size':18}) plt.xlabel('xaxis',size='20') #Ajouter une étiquette sur l'axe des x, size='À la taille que vous aimez' plt.ylabel('yaxis',size='20') #Ajouter une étiquette à l'axe y plt.xlim((0,10)) #Gamme de x: 0-10 plt.ylim((0,100)) #Gamme de y:0-20 plt.tick_params(labelsize=15) #labelsize=À la taille que vous aimez plt.text(6,50,r'y=2^x',size='15',color='g') #add text plt.text(1,20,r'y=e^x',size='15',color='r') #add text plt.text(1,80,'Good luck!',size='15',color='k')

 Ce sera comme suit!
 <img width="581" alt="Screen Shot 2020-03-18 at 17.55.44.png " src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199901/473ac50b-6cd4-467c-5071-0bce96de0224.png ">

# finalement
 Dans cet article, je n'ai pas traité de choses de niche telles que l'animation et les versions à deux axes car il s'agit d'une édition de base. Dans la prochaine application

 --Axe
 --Animation (création d'un fichier gif)
 - graphique de contour
 - Lecture et écriture de fichiers csv
 - Lecture et exportation de fichiers HDF5

 Je voudrais résumer de telles choses!
 Puis!

 [Une addition]
 Application 1: https://qiita.com/coffiego/items/dfabde5f8588723b32d6
 Est fait!


Recommended Posts

J'ai essayé de résumer tous les graphiques Python utilisés dans la recherche par des étudiants diplômés en sciences actifs [Basique]
J'ai essayé de résumer tous les outils de visualisation Python utilisés dans la recherche par des étudiants diplômés en sciences actifs [Application]
J'ai essayé de résumer le code souvent utilisé dans Pandas
J'ai essayé de résumer les commandes souvent utilisées en entreprise
J'ai essayé de résumer les commandes utilisées par les ingénieurs débutants aujourd'hui
J'ai essayé de résumer le contenu de chaque paquet enregistré par Python pip en une seule ligne
[Python] J'ai essayé de résumer le type collectif (ensemble) d'une manière facile à comprendre.
J'ai essayé de résumer les commandes Linux utilisées par les ingénieurs débutants aujourd'hui - Partie 1-
J'ai essayé de résumer les méthodes qui sont souvent utilisées lors de l'implémentation d'algo de base dans Quantx Factory
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de résumer comment utiliser les pandas de python
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai essayé de résumer ce que l'homme fort de python fait dans le quartier des professionnels de la compétition
J'ai essayé de résumer la méthode de mise en œuvre fréquemment utilisée de pytest-mock
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python
J'ai essayé de résumer la commande umask
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
Entrée standard Python3 que j'ai essayé de résumer
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
J'ai essayé de toucher Python (syntaxe de base)
J'ai essayé de résumer moi-même le flux général jusqu'à la création de services.
J'ai essayé d'implémenter la régression linéaire bayésienne par échantillonnage de Gibbs en python
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé d'analyser la carte du Nouvel An par moi-même en utilisant python
J'ai essayé d'organiser les index d'évaluation utilisés en machine learning (modèle de régression)
Comment lire toutes les classes contenues dans * .py dans le répertoire spécifié par Python
J'ai essayé de simuler "Birthday Paradox" avec Python
J'ai essayé la méthode des moindres carrés en Python
J'ai essayé de résumer les opérations susceptibles d'être utilisées avec numpy-stl
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé d'utiliser le module Datetime de Python
J'ai essayé de prédire l'évolution de la quantité de neige pendant 2 ans par apprentissage automatique
J'ai essayé d'implémenter le tri sélectif en python
LeetCode j'ai essayé de résumer les plus simples
Je veux afficher la progression en Python!
[Introduction à Docker] J'ai essayé de résumer diverses connaissances Docker acquises en étudiant (Windows / Python)
[Première science des données ⑤] J'ai essayé d'aider mon ami à trouver la première propriété par analyse de données
J'ai essayé de résumer les nouvelles personnes infectées par le virus corona dans la ville d'Ichikawa, préfecture de Chiba
[First data science ⑥] J'ai essayé de visualiser le prix du marché des restaurants à Tokyo
J'ai utilisé Python pour découvrir les choix de rôle des 51 "Yachts" dans le monde.
[Python] J'ai essayé de résumer le tableau, la méthode de génération du dictionnaire, la méthode de boucle, la notation d'inclusion de liste
J'ai essayé de résumer comment utiliser matplotlib de python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé d'implémenter un pseudo pachislot en Python
J'ai essayé d'implémenter le poker de Drakue en Python
J'ai essayé d'implémenter GA (algorithme génétique) en Python
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
Je veux écrire en Python! (3) Utiliser des simulacres
J'ai essayé de résoudre le problème avec Python Vol.1
Je veux utiliser le jeu de données R avec python
Python Open CV a essayé d'afficher l'image sous forme de texte.
Django super introduction par les débutants Python! Partie 6 J'ai essayé d'implémenter la fonction de connexion
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python