[PYTHON] Créer un graphique à l'aide du module Sympy

Créer un graphique avec Sympy

Lorsque vous effectuez des calculs algébriques à l'aide de Sympy, vous voudrez peut-être jeter un coup d'œil à ce à quoi ressemble le graphique de cette formule. En parlant de graphes en Python, je pense que la première chose qui me vient à l'esprit est matplotlib, mais quand $ y = f (x) $, $ x $ doit être assigné en utilisant l'arrangement de numpy, ce qui est gênant. .. Le module Plotting de Sympy peut être utilisé dans de tels cas. Cela non seulement trace la formule telle quelle, mais fait également quelque chose d'assez compliqué.

Importer les modules requis

Tout d'abord, importez les modules requis. Dans Sympy, il semble que "from sympy import ~" soit souvent utilisé. En plus du var qui définit les variables, cette fois j'utiliserai la "fonction plot_implicit" qui vous permet de découvrir la génialité du module Plotting. De plus, en fait, le graphique de Sympy a matplotlib fonctionnant dans les coulisses, alors importez-le également.

Importez les modules nécessaires, etc.


from sympy import var
from sympy.plotting import plot_implicit
import matplotlib.pyplot as plt

Créer un cercle

Tout d'abord, dessinons un cercle ($ x ^ 2 + y ^ 2 = 1 $).

Importez les modules nécessaires, etc.


#Dessiner une ellipse
var('x,y')
size = 1.1
f = x**2 + y**2 - 1
plot_implicit(f, (x, -size, size), (y, -size, size),
              xlim=(-size*1.1, size*1.1), ylim=(-size*1.1, size*1.1))
plt.rcParams['figure.figsize'] = (5, 5)

Avec plot_implicit, vous pouvez représenter graphiquement la formule sans avoir à la faire ressembler à $ y = f (x) $. Vous pouvez créer un graphique simplement en entrant une formule et en spécifiant la plage de $ x, y $ avec plot_implicit. Après cela, dans plt.rcParams de matplotloib, spécifiez la taille du graphique, etc. et c'est terminé. Le résultat est le suivant: image.png

Dessinez une double courbe

Ensuite, dessinons une double courbe. La formule est $ x ^ 2- y ^ 2 = 1 $. Le programme et le graphique sont les suivants.

Importez les modules nécessaires, etc.


#Dessinez une double courbe
var('x,y')
size = 5
f= x**2 - y**2 - 1
plot_implicit(f, (x, -size, size), (y, -size, size),
              xlim=(-size*1.1, size*1.1), ylim=(-size*1.1, size*1.1))
plt.rcParams['figure.figsize'] = (5, 5)

image.png

Deux lignes droites qui se croisent

Dessinons les deux dernières lignes droites qui se croisent. La formule est $ f = x ^ 2 --y ^ 2 --0 $. Le programme et le graphique sont les suivants.

Importez les modules nécessaires, etc.


 #Dessin de courbes qui se croisent
var('x,y')
size = 5
f= x**2 - y**2 - 0
plot_implicit(f, (x, -size, size), (y, -size, size),
              xlim=(-size*1.1, size*1.1), ylim=(-size*1.1, size*1.1))
plt.rcParams['figure.figsize'] = (5, 5)

image.png

Résumé

Du coup j'ai utilisé une fonction spéciale, mais je pense que c'est très pratique. Cependant, il semble que plot_implicit ne puisse pas être utilisé en 3D, vous devez donc utiliser un autre module. Je fais un peu plus de recherches à ce sujet.

Recommended Posts

Créer un graphique à l'aide du module Sympy
Créer un module Python
Ecrire un serveur TCP à l'aide du module SocketServer
Créez une interface graphique sur le terminal à l'aide de curses
Créer un enregistrement avec des pièces jointes dans KINTONE à l'aide du module de requêtes Python
Créez un graphique à l'aide du bouton et du curseur de l'intrigue
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 2 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 3 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 4 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 5 ~
Rechercher la table à l'aide de sqlalchemy et créer un dictionnaire
Créez un robot de réponse automatique en temps réel à l'aide de l'API Twitter Streaming
Créer un dictionnaire imbriqué à l'aide de defaultdict
Essayez d'utiliser le module Python Cmd
Créer une API CRUD à l'aide de l'API rapide
Créez un wrapper de langage C à l'aide de Boost.Python
Utilisez sqlalchemy pour rechercher la table DB et créer un Dataflame pour les pandas
[Ev3dev] Créez un programme qui capture LCD (écran) en utilisant python
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
Comment dessiner un graphique avec Matplotlib
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
Créer une application à l'aide de l'API Spotify
Créer un bloc de données à partir d'Excel à l'aide de pandas
Ajouter une couche à l'aide du backend Keras
Créer un graphique avec des bordures supprimées avec matplotlib
Créer un fichier GIF en utilisant Pillow en Python
Créer une application d'assistance technique à l'aide de PyLearn2
[Python] Exécutons le module régulièrement en utilisant schedule
Créez une API REST à l'aide du modèle appris dans Lobe et TensorFlow Serving.
Créez l'environnement de calcul le plus puissant avec Sympy + Jupyter
Créez facilement un serveur API à l'aide du module go-json-rest
Créons une API REST en utilisant SpringBoot + MongoDB
Créer un arbre phylogénétique à partir de Biopyton en utilisant ClustalW2
Créer un analyseur de données binaires à l'aide de Kaitai Struct
Enregistrez le tableau numpy dans un fichier wav à l'aide du module wave
Créer une carte Web en utilisant Python et GDAL
J'ai essayé d'utiliser le module Datetime de Python
[Python] Une compréhension approximative du module de journalisation
Utilisez le module de papier électronique comme liste de tâches
Essayez d'utiliser le module de collections (ChainMap) de python3
Créer un système de notification des visiteurs à l'aide de Raspberry Pi
Générez des valeurs de hachage à l'aide de la méthode HMAC.
[AWS Lambda] Créer un package de déploiement à l'aide de l'image Amazon Linux Docker
Créez un fichier MIDI en Python en utilisant pretty_midi
Faisons un module pour Python en utilisant SWIG
Créez une roue de votre propre module OpenCV
Comment désinstaller un module installé à l'aide de setup.py
Créez une commande pour obtenir le journal de travail
Créez un outil de traduction avec Translate Toolkit
Créez un filtre pour obtenir un jeton d'accès avec l'API Graph (Flask)
Une histoire qui était pratique lorsque j'ai essayé d'utiliser le module d'adresse IP python
[Python] Vous pouvez enregistrer un objet dans un fichier en utilisant le module pickle.
Dessinez un graphique avec PyQtGraph Partie 5-Augmentez l'axe Y
Lire la source Python-Markdown: Comment créer un analyseur
Créer un bot de collecte de données en Python à l'aide de Selenium
Créer une fonction pour visualiser / évaluer le résultat du clustering
Obtenir le nom de fichier dans un dossier à l'aide de glob
Découpez une partie de la chaîne à l'aide d'une tranche Python