Trace múltiples gráficos separados para los mismos datos de una secuencia de comandos de Python

Es muy fácil trazar diferentes tipos de mapas y gráficos de diferentes datos usando Python. Una biblioteca tan útil en Python es Matplotlib , que es muy útil para crear diferentes tipos de gráficos utilizando los mismos datos.

La forma más fácil de instalar Matplotlib es usando el comando pip en la línea de comandos como se muestra a continuación:

pip install matplotlib

Además, usamos las bibliotecas numpy y pandas para crear y usar los conjuntos de datos. Por lo tanto, la instalación de la biblioteca numpy y pandas también se puede realizar mediante el comando pip en la línea de comandos.

pip install numpy 
pip install pandas

Para hacer gráficos creativos y fáciles de encontrar los datos ubicados dentro del gráfico, utilizamos las bibliotecas plotly y cufflinks . Para utilizar estas bibliotecas, el método de instalación también es el mismo que el de las bibliotecas mencionadas anteriormente. 

pip install chart_studio.plotly
pip install cufflinks

En este artículo, crearemos un Plotter que nos permita crear diferentes tipos de gráficos utilizando los mismos datos.

En este programa, primero damos la opción de elegir el conjunto de datos requerido para trazar el gráfico. Hay 3 opciones disponibles para usar sentencias if-elif. 

  • Creando datos aleatorios usando 100 filas y 5 columnas
  • Conjunto de datos de entrada de usuario con 4 filas y 5 columnas
  • Cargue el archivo CSV/JSON

El segundo paso es decidir el gráfico que se trazará con todo el conjunto de datos o para columnas específicas. Y, por último, presentamos diferentes tipos de trazadores que los usuarios quieren trazar sus datos y trazar el gráfico en consecuencia. 

A continuación se muestra la implementación:

Python3

# importing required libraries
import numpy as np
import pandas as pd
import chart_studio.plotly as pl
import plotly.offline as po
import cufflinks as cf
po.init_notebook_mode(connected = True)
cf.go_offline()
 
# define a function for creating
# data set for plotting graph
def createdata(data):
   
    # creating random data set
    if(data == 1):
        x = np.random.rand(100,5)
        df1 = pd.DataFrame(x, columns = ['A', 'B',
                                        'C', 'D',
                                        'E'])
         
    # creating user data set with input
    elif(data == 2):           
        x = [0, 0, 0, 0, 0]
        r1 = [0, 0, 0, 0, 0]
        r2 = [0, 0, 0, 0, 0]
        r3 = [0, 0, 0, 0, 0]
        r4 = [0, 0, 0, 0, 0]
         
        print('Enter the values for columns')
        i = 0
         
        for i in [0, 1, 2, 3, 4]:
            x[i] = input()
            i = i + 1
        print('Enter the values for first row')
        i = 0
         
        for i in [0, 1, 2, 3, 4]:
            r1[i] = int(input())
            i = i + 1
             
        print('Enter the values for second row')
        i = 0
         
        for i in [0, 1, 2, 3, 4]:
            r2[i] = int(input())
            i = i + 1
             
        print('Enter the values for third row')
        i = 0
         
        for i in [0, 1, 2, 3, 4]:
            r3[i] = int(input())
            i = i + 1
             
        print('Enter the values for fourth row')
        i = 0
         
        for i in [0, 1, 2, 3, 4]:
            r4[i] = int(input())
            i = i + 1
             
        df1 = pd.DataFrame([r1,r2,r3,r4] ,
                           columns = x)
    # creating data set by csv file  
    elif(data == 3):           
        file = input('Enter the file name')
        x = pd.read_csv(file)
        df1 = pd.DataFrame(x)
         
    else:
        print('DataFrame creation failed please' +
              'enter in between 1 to 3 and try again')
         
    return df1
 
# define a function for
# types of plotters
def plotter(plot):
   
    if(plot == 1):
        finalplot = df1.iplot(kind = 'scatter')
         
    elif(plot == 2):
        finalplot = df1.iplot(kind = 'scatter', mode = 'markers',
                              symbol = 'x', colorscale = 'paired')
    elif(plot == 3):
        finalplot = df1.iplot(kind = 'bar')
         
    elif(plot == 4):
        finalplot = df1.iplot(kind = 'hist')
         
    elif(plot == 5):
        finalplot = df1.iplot(kind = 'box')
         
    elif(plot == 6):
        finalplot = df1.iplot(kind = 'surface')
         
    else:
        finalplot = print('Select only between 1 to 7')
         
    return finalplot
 
# define a function for allowing
# to plot for specific rows and columns
def plotter2(plot):           
   
    col = input('Enter the number of columns you' +
                'want to plot by selecting only 1 , 2 or 3')
     
    col = int(col)
     
    if(col==1):
       
        colm = input('Enter the column you want to plot' +
                     'by selecting any column from dataframe head')
        if(plot == 1):
            finalplot = df1[colm].iplot(kind = 'scatter')
             
        elif(plot == 2):
            finalplot = df1[colm].iplot(kind = 'scatter', mode = 'markers',
                                        symbol = 'x', colorscale = 'paired')
        elif(plot == 3):
            finalplot = df1[colm].iplot(kind = 'bar')
             
        elif(plot == 4):
            finalplot = df1[colm].iplot(kind = 'hist')
             
        elif(plot == 5):
            finalplot = df1[colm].iplot(kind = 'box')
             
        elif(plot == 6 or plot == 7):
            finalplot = print('Bubble plot and surface plot require' +
                              'more than one column arguments')
        else:
            finalplot = print('Select only between 1 to 7')
             
    elif(col == 2):
       
        print('Enter the columns you want to plot' +
              'by selecting from dataframe head')
         
        x = input('First column')
        y = input('Second column')
         
        if(plot == 1):
            finalplot = df1[[x,y]].iplot(kind = 'scatter')
             
        elif(plot == 2):
            finalplot = df1[[x,y]].iplot(kind = 'scatter', mode = 'markers',
                                         symbol = 'x', colorscale = 'paired')
        elif(plot == 3):
            finalplot = df1[[x,y]].iplot(kind = 'bar')
             
        elif(plot == 4):
            finalplot = df1[[x,y]].iplot(kind = 'hist')
             
        elif(plot == 5):
            finalplot = df1[[x,y]].iplot(kind = 'box')
             
        elif(plot == 6):
            finalplot = df1[[x,y]].iplot(kind = 'surface')
             
        elif(plot == 7):
            size = input('Please enter the size column for bubble plot')
            finalplot = df1.iplot(kind = 'bubble', x = x,
                                  y = y, size = size)
        else:
            finalplot = print('Select only between 1 to 7')
             
    elif(col == 3):
       
        print('Enter the columns you want to plot')
        x = input('First column')
        y = input('Second column')
        z = input('Third column')
          
        if(plot == 1):
            finalplot = df1[[x,y,z]].iplot(kind = 'scatter')
             
        elif(plot == 2):
            finalplot = df1[[x,y,z]].iplot(kind = 'scatter', mode = 'markers',
                                           symbol = 'x' ,colorscale = 'paired')
        elif(plot == 3):
            finalplot = df1[[x,y,z]].iplot(kind = 'bar')
             
        elif(plot == 4):
            finalplot = df1[[x,y,z]].iplot(kind = 'hist')
             
        elif(plot == 5):
            finalplot = df1[[x,y,z]].iplot(kind = 'box')
             
        elif(plot == 6):
            finalplot = df1[[x,y,z]].iplot(kind = 'surface')
             
        elif(plot == 7):
            size = input('Please enter the size column for bubble plot')
             
            finalplot = df1.iplot(kind = 'bubble', x = x, y = y,
                                  z = z, size = size )
        else:
            finalplot = print('Select only between 1 to 7')
    else:
        finalplot = print('Please enter only 1 , 2 or 3')
    return finalplot
 
# define a main function
# for asking type of plot
# and calling respective function
def main(cat):   
   
    if(cat == 1):
       
        print('Select the type of plot you need to plot by writing 1 to 6')
        print('1.Line plot')
        print('2.Scatter plot')
        print('3.Bar plot')
        print('4.Histogram')
        print('5.Box plot')
        print('6.Surface plot')
        plot = int(input())
        output = plotter(plot)
         
    elif(cat == 2):
       
        print('Select the type of plot you need to plot by writing 1 to 7')
        print('1.Line plot')
        print('2.Scatter plot')
        print('3.Bar plot')
        print('4.Histogram')
        print('5.Box plot')
        print('6.Surface plot')
        print('7.Bubble plot')
        plot = int(input())
        output = plotter2(plot)
         
    else:
        print('Please enter 1 or 2 and try again') 
         
print('Select the type of data you need to plot(By writing 1,2 or 3)')
print('1.Random data with 100 rows and 5 columns')
print('2.Customize dataframe with 5 columns and. 4 rows')
print('3.Upload csv/json/txt file')
 
data = int(input())
df1 = createdata(data)
print('Your DataFrame head is given below check the columns to plot using cufflinks')
 
df1.head()
print('What kind of plot you need , the complete data plot or columns plot')
cat = input('Press 1 for plotting all columns or press 2 for specifying columns to plot')
cat = int(cat)
 
main(cat)

Producción:

Gráfico de dispersión:

 Scatter graph plot

 Gráfico de dispersión

Gráfico de histograma:

Histogram plot

Gráfico de histograma 

Diagrama de caja:

Box plot

diagrama de caja 

Publicación traducida automáticamente

Artículo escrito por deepkiyada7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *