Fast 3D Data Analysis with this amazing Python library

Tired of matplotlib and those 2000 style graphics ? Let us introduce you THE library to know for 3D analysis.

This library is Plotly. A package that will allow you to realize high quality graphics.

Indeed, with Plotly you can quickly create 3D graphics with very few lines of code.

Scroll down to know better⬇

Vous en avez marre de matplotlib et de ces graphismes style 2000 ? On vous présente LA librairie à connaître pour l’analyse 3D .

Plotly graph_objects

With Plotly you can easily create 3D graphs.

We start with a very simple and easy to implement graph with plotly.graph_objects :

import plotly.graph_objects as go
import numpy as np

t = np.linspace(0, 20, 100)
x, y, z = np.cos(t), np.sin(t), t

fig = go.Figure(data=[go.Scatter3d(x=x, y=y, z=z, mode='markers',
                                   marker=dict(
                                       size=10, color=z, colorscale='plotly3',
                                       opacity=0.8, reversescale=True))])
fig.update_layout(margin=dict(l=0, r=0, b=0, t=0))
fig.show()

plotly.graph_objects enables us to efficiently visualize clouds of points.

You can see that here, in addition to having a 3D graph, we can set the color to evolve along an axis.

Indeed with color=z in the marker dictionary, we tell Plotly that the higher the value of our points on the z axis, the darker the color should be.

A simple and effective result that allows a better interpretation of the data !

Plotly express

Let’s continue with plotly.express which is a more advanced module.

The specificity of plotly.express is that, in addition to making 3D graphics, it adapts to our dataset.

Here we take the iris dataset which lists the species of plants according to the size of their petal :

import plotly.express as px
df = px.data.iris()
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
              color='petal_length', symbol='species')
fig.show()

In addition to displaying the dataset distribution, plotly.express can vary the color of the points according to the characteristics of the plants. Here the length of the petals (petal_length).

THE PANE METHOD FOR DEEP LEARNING!

Get your 7 DAYS FREE TRAINING to learn how to create your first ARTIFICIAL INTELLIGENCE!

For the next 7 days I will show you how to use Neural Networks.

You will learn what Deep Learning is with concrete examples that will stick in your head.

BEWARE, this email series is not for everyone. If you are the kind of person who likes theoretical and academic courses, you can skip it.

But if you want to learn the PANE method to do Deep Learning, click here :

That is to say that the larger the petal will be, the darker the color will be and vice versa.

We can also see that the shape of the cloud points changes according to the variety of the flower. Thus we will have rounds for the flowers setosa, squares for versicolor and diamonds for virginica.

In a way, these characteristics add a dimension to the graph and allow a better analysis of the data.

And for those who, like me, prefer a more modern style, we can very well add a dark theme to our graph.

For that, we just have to add template=”plotly_dark” in the code.

The result, below :

import plotly.express as px
df = px.data.iris()
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
              color='petal_width', symbol='species')
fig.update_layout(template="plotly_dark")
fig.show()

Plotly Multiple 3D Graph

Here, we go further into customization to display both cloud points and surface.

In fact, this surface will represent a logistic regression, a Data Science concept that consists in establishing a separation between data to better classify them.

You can therefore display both cloud points (the basic data) and logistic regression (the result of the data analysis) with 3D graph :

import plotly.graph_objects as go
import numpy as np
from sklearn.datasets import make_blobs

#Initialization of Data
X, y = make_blobs(n_samples = 100, n_features=2, centers=2, random_state=0)
W = np.array([[ 0.50621636], [-1.43113825]])

X0 = np.linspace(X[:, 0].min(), X[:, 0].max(), 100)
X1 = np.linspace(X[:, 1].min(), X[:, 1].max(), 100)

xx0, xx1 = np.meshgrid(X0,X1)
Z = W[0] * xx0 + W[1] * xx1
A = 1 / (1 + np.exp(-Z))

#Using Plotly
fig = (go.Figure(data=[go.Surface(z=A, x=xx0, y=xx1, colorscale='haline', opacity = 0.7)]))

fig.add_scatter3d(x=X[:, 0].flatten(), y=X[:, 1].flatten(), z=y.flatten(), mode='markers',
                  marker=dict(size=5, color=y.flatten(), colorscale='haline',opacity=0.9))

fig.update_layout(margin=dict(l=0, r=0, b=0, t=0))
fig.layout.scene.camera.projection.type = "orthographic"
fig.show()

This completes this article on Plotly, an article that I hope will have met your expectations !

sources :

THE PANE METHOD FOR DEEP LEARNING!

Get your 7 DAYS FREE TRAINING to learn how to create your first ARTIFICIAL INTELLIGENCE!

For the next 7 days I will show you how to use Neural Networks.

You will learn what Deep Learning is with concrete examples that will stick in your head.

BEWARE, this email series is not for everyone. If you are the kind of person who likes theoretical and academic courses, you can skip it.

But if you want to learn the PANE method to do Deep Learning, click here :

Tom Keldenich
Tom Keldenich

Data Engineer & passionate about Artificial Intelligence !

Founder of the website Inside Machine Learning

Leave a Reply

Your email address will not be published. Required fields are marked *

This page will not stay online forever

Enter your email to receive for free

The PANE method for Deep Learning

* indicates required

 

You will receive one email per day for 7 days – then you will receive my newsletter.
Your information will never be given to third parties.

You can unsubscribe in 1 click from any of my emails.

Cette page ne restera pas en ligne éternellement


Entre ton email pour recevoir gratuitement
la méthode PARÉ pour faire du Deep Learning


Tu recevras un email par jour pendant 7 jours - puis tu recevras ma newsletter.
Tes informations ne seront jamais cédées à des tiers.

Tu peux te désinscrire en 1 clic depuis n'importe lequel de mes emails.