# Plot multiple separate graphs for same data from one Python script

• Last Updated : 13 Sep, 2021

It is very easy to plot different kinds of maps and plots of different data using Python. One such useful library in Python is Matplotlib which is very useful for creating different types of plots using the same data.

The easiest way to install Matplotlib is by using the pip command in the command-line as shown below:

`pip install matplotlib`

Also, we use numpy and pandas libraries for creating and using the data sets. Therefore, installing numpy and pandas library can also be done using pip command in command-line.

```pip install numpy
pip install pandas```

To make plots creative and easy to find the located data inside the graph we use the plotly and cufflinks libraries. To use these libraries the method of installation is also the same as above mentioned libraries.

```pip install chart_studio.plotly

In this article, we will create a Plotter that enables us to create different types of plots using the same data.

In this program, we first give the option for choosing the data set required to plot the graph. There are 3 options available for that using if-elif statements.

• Creating random data using 100 rows and 5 columns
• User input data set with 4 rows and 5 columns

The second step is to decide the plot to be plotted with the entire data set or for specific columns. And lastly, we present different kinds of plotters users want to plot their data and plot the graph accordingly.

Below is the implementation:

## 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)`

Output:

Scatter plot:

Scatter graph plot

Histogram plot:

Histogram plot

Boxplot:

Boxplot

My Personal Notes arrow_drop_up