Skip to main content

Create dynamic and interactive graphs using plotly & cufflinks

  As we know visuals are best of data analysis for humans. So if we want to do data analysis in machine learning using python, then there are lots of libraries(plot using pandas, matplotlib, folium, seaborn) are available to create graphs, but if we just looking for graphs then we can draw the graphs but these graphs are very static.
  That means we can't create dynamic graphs using these libraries. If requirement is to create dynamic graphs then we have to move on another libraries like plotly & cufflinks.
import plotly.graph_objs as go
import plotly.offline as pyo
datax = np.random.randint(1,101,100)
datay = np.random.randint(1,101,100)
datax,datay
(array([66, 80, 27,  7, 76, 82, 75, 97, 80, 10,  2, 53, 97, 84, 29,  3, 99,
        10, 59, 75, 21, 27, 93, 64, 96, 63, 78, 89, 16, 80, 35, 39, 32, 33,
        46, 26, 59, 60, 70,  9, 72, 51, 23, 32, 49, 92, 74, 49,  7, 89, 90,
        48, 75, 94, 82, 24,  7, 81, 11, 12, 86, 47, 47, 70, 76,  9, 92,  8,
         7, 66, 44, 17, 75, 48, 77, 47, 35, 17, 41, 51,  7, 22,  5, 34, 51,
        32, 88,  6,  3, 75, 19, 25, 96, 70, 54, 44,  2,  3, 81, 28]),
 array([ 27,  57,  54,  88,  52,  72,  47,  21,  68, 100,  51,  54,  42,
         27,  52,  54,  48,  66,   3,  88,  68,  59,   7,  76,  29,  18,
          2,  14,   6,  96,  51,  56,  43,  65,  80,  96,  81,   9,  38,
         11,  58,  88,   5,  87,  67,  80,  78,  69,  84,  48,  44,  23,
         38,  36,  42, 100,  13,  96, 100,   4,  32,  69,  99,  87,  88,
         98,  50,  18,  88,  89,  86,  71,   2,   1,  75,  46,  84,  94,
         92,  87,  75,  47,  28,  92,  53,  62,  85,  38,  29,  54,  99,
         79,  91,  93,  55,  40,   5,  75,  39,  15]))
graphs_data = [go.Scatter(x=datax, y=datay, mode='markers')]
graphs_data
Scatter({
    'x': array([66, 80, 27,  7, 76, 82, 75, 97, 80, 10,  2, 53, 97, 84, 29,  3, 99, 10,
                59, 75, 21, 27, 93, 64, 96, 63, 78, 89, 16, 80, 35, 39, 32, 33, 46, 26,
                59, 60, 70,  9, 72, 51, 23, 32, 49, 92, 74, 49,  7, 89, 90, 48, 75, 94,
                82, 24,  7, 81, 11, 12, 86, 47, 47, 70, 76,  9, 92,  8,  7, 66, 44, 17,
                75, 48, 77, 47, 35, 17, 41, 51,  7, 22,  5, 34, 51, 32, 88,  6,  3, 75,
                19, 25, 96, 70, 54, 44,  2,  3, 81, 28]),
    'y': array([ 27,  57,  54,  88,  52,  72,  47,  21,  68, 100,  51,  54,  42,  27,
                 52,  54,  48,  66,   3,  88,  68,  59,   7,  76,  29,  18,   2,  14,
                  6,  96,  51,  56,  43,  65,  80,  96,  81,   9,  38,  11,  58,  88,
                  5,  87,  67,  80,  78,  69,  84,  48,  44,  23,  38,  36,  42, 100,
                 13,  96, 100,   4,  32,  69,  99,  87,  88,  98,  50,  18,  88,  89,
                 86,  71,   2,   1,  75,  46,  84,  94,  92,  87,  75,  47,  28,  92,
                 53,  62,  85,  38,  29,  54,  99,  79,  91,  93,  55,  40,   5,  75,
                 39,  15]) 
})
fig = go.Figure(data=graphs_data)
fig

pyo.plot(fig)
'temp-plot.html'
That's how we can create you create dynamic and interactive graphs, these are nice and work fine but only one drawback here is that we have to write lots of code. So to simplify this we have another library for same purpose is cufflinks. Cufflinks integrate all the plotly function to pandas library.
import cufflinks as cf
cf.go_offline()
df.iplot(x='id', y='salary', kind='scatter', mode='markers')
Also you can create 3D graph using cufflinks.
x1 = [1,2,3,4,5]
y1 = [10,20,30,40,50]
z1 = [5,4,6,7,1]
dataset = pd.DataFrame({'id':x1,'name':y1,'remarks':z1})
type(dataset)
pandas.core.frame.DataFrame
dataset.iplot(kind='surface')

Comments

Popular posts from this blog

error: db5 error(11) from dbenv->open: Resource temporarily unavailable

If rpm command is not working in your system and it is giving an error message( error: db5 error(11) from dbenv->open: Resource temporarily unavailable ). What is the root cause of this issue? How to fix this issue?   just a single command- [root@localhost rpm]# rpm --rebuilddb Detailed error message- [root@localhost rpm]# rpm -q firefox ^Cerror: db5 error(11) from dbenv->open: Resource temporarily unavailable error: cannot open Packages index using db5 - Resource temporarily unavailable (11) error: cannot open Packages database in /var/lib/rpm ^Cerror: db5 error(11) from dbenv->open: Resource temporarily unavailable error: cannot open Packages database in /var/lib/rpm package firefox is not installed [root@localhost rpm]# RPM manage a database in which it store all information related to packages installed in our system. /var/lib/rpm, this is directory where this information is available. [root@localhost rpm]# cd /var/lib/rpm [root@

Failed to get D-Bus connection: Operation not permitted

" Failed to get D-Bus connection: Operation not permitted " - systemctl command is not working in Docker container. If systemctl command is not working in your container and giving subjected error message then simple solution of this error is, create container with -- privileged option and also provide init file full path  /usr/sbin/init [root@server109 ~]# docker container run -dit --privileged --name systemctl_not_working_centos1 centos:7 /usr/sbin/init For detailed explanation and understanding I am writing more about it, please have look below. If we have a daemon based program(httpd, sshd, jenkins, docker etc.) running inside a container and we would like to start/stop or check status of daemon inside docker then it becomes difficult for us to perform such operations , because by default systemctl and service  commands don't work inside docker. Normally we run below commands to check services status in Linux systems. [root@server109 ~]# systemctl status

AWS cloud automation using Terraform

In this post I'll create multiple resources in AWS cloud using Terraform . Terraform is an infrastructure as code( IAC ) software which can do lots of things but it is superb in cloud automation. To use Terraform we have write code in a high-level configuration language known as Hashicorp Configuration Language , optionally we can write code in JSON as well. I'll create below service using Terraform- 1. Create the key-pair and security group which allow inbound traffic on port 80 and 22 2. Launch EC2 instance. 3. To create EC2 instance use same key and security group which created in step 1 4. Launch Volume(EBS) and mount this volume into /var/www/html directory 5. Upload index.php file and an image on GitHub repository 6. Clone GitHub repository into /var/www/html 7. Create S3 bucket, copy images from GitHub repo into it and set permission to public readable 8 Create a CloudFront use S3 bucket(which contains images) and use the CloudFront URL to update code in /var/w