Zoeken…


matplotlib

Matplotlib is een wiskundige plotbibliotheek voor Python die een verscheidenheid aan verschillende plotfunctionaliteit biedt.

De matplotlib documentatie vindt u hier , met de SO Docs beschikbaar zijn hier .

Matplotlib biedt twee verschillende plotmethoden, hoewel ze grotendeels uitwisselbaar zijn:

  • Ten eerste biedt matplotlib de pyplot interface, een directe en eenvoudig te gebruiken interface waarmee complexe grafieken in een MATLAB-achtige stijl kunnen worden pyplot .
  • Ten tweede stelt matplotlib de gebruiker in staat om de verschillende aspecten (assen, lijnen, teken, etc.) rechtstreeks te besturen met behulp van een objectgebaseerd systeem. Dit is moeilijker maar biedt volledige controle over het hele perceel.

Hieronder ziet u een voorbeeld van het gebruik van de pyplot interface om sommige gegenereerde gegevens te plotten:

import matplotlib.pyplot as plt

# Generate some data for plotting.
x = [0, 1, 2, 3, 4, 5, 6]
y = [i**2 for i in x]

# Plot the data x, y with some keyword arguments that control the plot style.
# Use two different plot commands to plot both points (scatter) and a line (plot).

plt.scatter(x, y, c='blue', marker='x', s=100) # Create blue markers of shape "x" and size 100
plt.plot(x, y, color='red', linewidth=2) # Create a red line with linewidth 2.

# Add some text to the axes and a title.
plt.xlabel('x data')
plt.ylabel('y data')
plt.title('An example plot')

# Generate the plot and show to the user.
plt.show()

Voorbeeld plot

Merk op dat bekend is dat plt.show() in sommige omgevingen problematisch is vanwege het uitvoeren van matplotlib.pyplot in interactieve modus, en als dat zo is, kan het blokkeergedrag expliciet worden opgeheven door een optioneel argument door te geven, plt.show(block=True) om het probleem te verhelpen.

Seaborn

Seaborn is een wrapper rond Matplotlib die het maken van gemeenschappelijke statistische plots eenvoudig maakt. De lijst met ondersteunde plots bevat univariate en bivariate distributieplots, regressieplots en een aantal methoden voor het plotten van categorische variabelen. De volledige lijst met plots die Seaborn biedt, staat in hun API-referentie .

Grafieken maken in Seaborn is net zo eenvoudig als het aanroepen van de juiste grafische functie. Hier is een voorbeeld van het maken van een histogram, schatting van de kerneldichtheid en rugplot voor willekeurig gegenereerde gegevens.

import numpy as np  # numpy used to create data from plotting
import seaborn as sns  # common form of importing seaborn

# Generate normally distributed data
data = np.random.randn(1000)

# Plot a histogram with both a rugplot and kde graph superimposed
sns.distplot(data, kde=True, rug=True)

Voorbeeld distplot

De stijl van de plot kan ook worden geregeld met behulp van een declaratieve syntaxis.

# Using previously created imports and data.

# Use a dark background with no grid.
sns.set_style('dark')
# Create the plot again
sns.distplot(data, kde=True, rug=True)

Voorbeeld styling

Als een toegevoegde bonus, kunnen normale matplotlib-opdrachten nog steeds worden toegepast op Seaborn-plots. Hier is een voorbeeld van het toevoegen van astitels aan ons eerder gemaakte histogram.

# Using previously created data and style

# Access to matplotlib commands
import matplotlib.pyplot as plt

# Previously created plot. 
sns.distplot(data, kde=True, rug=True)
# Set the axis labels.
plt.xlabel('This is my x-axis')
plt.ylabel('This is my y-axis')

Voorbeeld matplotlib

mayavi

MayaVI is een 3D-visualisatietool voor wetenschappelijke gegevens. Het maakt gebruik van de Visualization Tool Kit of VTK onder de motorkap. Met behulp van de kracht van VTK is MayaVI in staat om verschillende driedimensionale plots en figuren te produceren. Het is beschikbaar als een afzonderlijke softwaretoepassing en ook als een bibliotheek. Net als Matplotlib biedt deze bibliotheek een objectgeoriënteerde programmeertaalinterface om plots te maken zonder VTK te kennen.

MayaVI is alleen beschikbaar in de Python 2.7x-serie! Het is te hopen dat het binnenkort beschikbaar is in de Python 3-x-serie! (Hoewel enig succes wordt opgemerkt bij het gebruik van de afhankelijkheden in Python 3)

Documentatie vindt u hier . Enkele galerij-voorbeelden zijn hier te vinden

Hier is een voorbeeldplot gemaakt met MayaVI uit de documentatie.

# Author: Gael Varoquaux <[email protected]>
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.


from numpy import sin, cos, mgrid, pi, sqrt
from mayavi import mlab

mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]

X = 2 / 3. * (cos(u) * cos(2 * v)
        + sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
                                                 sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) -
        sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
        - sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
S = sin(u)

mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )

# Nice view from the front
mlab.view(.0, - 5.0, 4)
mlab.show()

beeld

Plotly

Plotly is een modern platform voor plotten en datavisualisatie. Handig voor het produceren van verschillende plots, vooral voor datawetenschappen, is Plotly beschikbaar als een bibliotheek voor Python , R , JavaScript , Julia en, MATLAB . Het kan ook worden gebruikt als een webtoepassing met deze talen.

Gebruikers kunnen een uitgebreide bibliotheek installeren en deze offline gebruiken na gebruikersauthenticatie. De installatie van deze bibliotheek en offline authenticatie worden hier gegeven. Ook kunnen de plots worden gemaakt in Jupyter Notebooks .

Gebruik van deze bibliotheek vereist een account met gebruikersnaam en wachtwoord. Dit geeft de werkruimte om plots en gegevens in de cloud op te slaan.

De gratis versie van de bibliotheek heeft enkele enigszins beperkte functies en is ontworpen voor het maken van 250 plots per dag. De betaalde versie heeft alle functies, onbeperkte plotdownloads en meer privégegevensopslag. Voor meer informatie kunt u de hoofdpagina hier bezoeken .

Voor documentatie en voorbeelden kan men hier terecht

Een voorbeeld van een plot uit de documentatie-voorbeelden:

import plotly.graph_objs as go
import plotly as ply

# Create random data with numpy
import numpy as np

N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5

# Create traces
trace0 = go.Scatter(
    x = random_x,
y = random_y0,
mode = 'lines',
name = 'lines'
)
trace1 = go.Scatter(
    x = random_x,
    y = random_y1,
    mode = 'lines+markers',
    name = 'lines+markers'
)
trace2 = go.Scatter(
    x = random_x,
    y = random_y2,
    mode = 'markers',
    name = 'markers'
)
data = [trace0, trace1, trace2]

ply.offline.plot(data, filename='line-mode')

Verhaal



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow