<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: HongKee Moon</title>
    <description>The latest articles on DEV Community by HongKee Moon (@hkmoon).</description>
    <link>https://dev.to/hkmoon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F339550%2Fe9bcd91e-8a74-47df-b44f-7c731472055d.jpeg</url>
      <title>DEV Community: HongKee Moon</title>
      <link>https://dev.to/hkmoon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hkmoon"/>
    <language>en</language>
    <item>
      <title>Sharing data among Python, R, Java, Javascript in Jupyter notebook</title>
      <dc:creator>HongKee Moon</dc:creator>
      <pubDate>Thu, 05 Mar 2020 08:57:35 +0000</pubDate>
      <link>https://dev.to/hkmoon/sharing-data-among-python-r-java-javascript-in-jupyter-notebook-p8k</link>
      <guid>https://dev.to/hkmoon/sharing-data-among-python-r-java-javascript-in-jupyter-notebook-p8k</guid>
      <description>&lt;p&gt;This will be the conclusion of my journey of exploring polyglot data visualization. As a scientific software engineer, there are many chances to cope with various kinds of environments where scientists are keen on. Personally, I prefer to using javascript because it is platform agnostic. &lt;/p&gt;

&lt;p&gt;I have one post how to communicate between python and javascript/java thanks to BeakerX extension. &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/hkmoon" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jomMnySH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--7iyjjO0L--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/339550/e9bcd91e-8a74-47df-b44f-7c731472055d.jpeg" alt="hkmoon image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hkmoon/autotranslation-from-python-to-javascript-in-jupyter-40cc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;AutoTranslation from Python to Javascript in Jupyter&lt;/h2&gt;
      &lt;h3&gt;HongKee Moon ・ Feb 24 ・ 1 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#jupyter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beakerx&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Today we take a look at how to exchange data between R and Python cells in Jupyter. The summary figure shows how to share data among R, Python, Java, Javascript in Jupyter notebook.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dlqTN0l4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/13w21iix8b3bm2kzmrt2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dlqTN0l4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/13w21iix8b3bm2kzmrt2.png" alt="Summary"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  rpy2 (&lt;a href="https://rpy2.readthedocs.io/en/latest/"&gt;https://rpy2.readthedocs.io/en/latest/&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;rpy2&lt;/em&gt; is designed to facilitate the use of R by Python programmers. R objects are exposed as instances of python classes and R functions as bound methods to those objects. &lt;/p&gt;

&lt;p&gt;In order to use &lt;em&gt;rpy2&lt;/em&gt; in jupyter notebooks, we need to install them first. Please, refer &lt;a href="https://rpy2.readthedocs.io/en/latest/overview.html#installation"&gt;https://rpy2.readthedocs.io/en/latest/overview.html#installation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then, enable it with &lt;em&gt;load_ext&lt;/em&gt; magic in the jupyter cell.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;load_ext&lt;/span&gt; &lt;span class="n"&gt;rpy2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ipython&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;For the convenience, let's put this extension in &lt;em&gt;ipython_config.py&lt;/em&gt; file which is located in &lt;em&gt;~/.ipython/profile_defaults&lt;/em&gt;. If there is no config file in the location, please, create &lt;em&gt;ipython_config.py&lt;/em&gt;. Then, paste the below content.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IPKernelApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;extensions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s"&gt;'rpy2.ipython'&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Now you can freely use the magics provided by &lt;em&gt;rpy2&lt;/em&gt;. Let's check the output of &lt;em&gt;pi&lt;/em&gt; from R.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;rpy2.robjects&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;robjects&lt;/span&gt;
&lt;span class="n"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;robjects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'pi'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a dataframe in Python&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="n"&gt;python_df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s"&gt;'A'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                          &lt;span class="s"&gt;'B'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]})&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;python_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the dataframe in R with &lt;em&gt;-i&lt;/em&gt; flag in the R magic&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="o"&gt;%%&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;python_df&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;# Pass the specific dataframe to R using the -i option&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;python_df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"Plotting a Python Dataframe in R"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"red"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pch&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export R variables with &lt;em&gt;-o&lt;/em&gt; flag in the R magic&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="o"&gt;%%&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;# R to Python&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;python_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;coefficients&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the exported R variables with &lt;em&gt;rpy2&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;rpy2.robjects&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;robjects&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Normally, the exported R dataframe is automatically translated as a panda's dataframe in Python.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="o"&gt;%%&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cars_df&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;cars_df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mtcars&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# print(cars_df)
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;beakerx&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;beakerx.object&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;beakerx&lt;/span&gt;

&lt;span class="n"&gt;beakerx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pandas_display_default&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;cars_df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;However, there is no direct way from R to Java/Javascript now. Hopefully, BeakerX team will provide the auto-translation feature for R sooner or later.&lt;/p&gt;

&lt;p&gt;Here is the gist including all the snippets shown in the article.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>jupyter</category>
      <category>python</category>
      <category>r</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Interactive or non-interactive visualization in Jupyter (R version)?</title>
      <dc:creator>HongKee Moon</dc:creator>
      <pubDate>Wed, 04 Mar 2020 16:05:29 +0000</pubDate>
      <link>https://dev.to/hkmoon/interactive-or-non-interactive-visualization-in-jupyter-r-version-bjg</link>
      <guid>https://dev.to/hkmoon/interactive-or-non-interactive-visualization-in-jupyter-r-version-bjg</guid>
      <description>&lt;p&gt;OK, it's time to use R kernel in our jupyter notebook. Actually, this can be done easily by following the instructions in &lt;a href="https://irkernel.github.io/installation/"&gt;https://irkernel.github.io/installation/&lt;/a&gt;.&lt;br&gt;
Then, let's check if our R kernel is installed well.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ggplot2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;qplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mpg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;mtcars&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;geom&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'point'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'smooth'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'lm'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;formular&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;cyl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Regression of MPG on Weight'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="n"&gt;xlab&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Weight'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ylab&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Miles per Gallon'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You probably see the cover picture after running the R cell which is a non-interactive chart, named ggplot2.&lt;/p&gt;
&lt;h3&gt;
  
  
  Non-interactive: ggplot2 (&lt;a href="https://ggplot2.tidyverse.org"&gt;https://ggplot2.tidyverse.org&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;ggplot2 is widely used for data scientists because it is fast, simple, customizable and scalable, which is a part of tidyverse. Tidyverse is an ecosystem of packages designed with common APIs and a shared philosophy for data science. You can check &lt;a href="https://www.tidyverse.org/"&gt;https://www.tidyverse.org/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When you want to make any plots from ggplot2 interactive, you can use &lt;em&gt;ggplotly()&lt;/em&gt; function provided by &lt;em&gt;plotly&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plotly&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;embed_notebook&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ggplotly&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"500"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Do not forget to call &lt;em&gt;embed_notebook()&lt;/em&gt; function. The above script changes the non-interactive chart to an interactive one.&lt;/p&gt;
&lt;h3&gt;
  
  
  Interactive: plotly (&lt;a href="https://plot.ly/r/"&gt;https://plot.ly/r/&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;Plotly provides two different methods for scatter plot. One is based on svg and the other is based on webgl. We can convert our svg chart to webgl with &lt;em&gt;toWebGL()&lt;/em&gt; function at anytime. Please, refer &lt;a href="https://plot.ly/r/webgl-vs-svg/"&gt;https://plot.ly/r/webgl-vs-svg/&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="c1"&gt;# install.packages("babynames", repos="http://cran.r-project.org")&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;babynames&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;nms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;babynames&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%in%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Sam"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jamie"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ggplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; 
  &lt;/span&gt;&lt;span class="n"&gt;geom_line&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sex&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linetype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;embed_notebook&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ggplotly&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dynamicTicks&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;rangeslider&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hovermode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"x"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The above code produces the time series how frequently "Sam" and "Jamie" are used as names for male and female.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UoBPu2q9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z2jbw8vsnofpi3on8r91.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UoBPu2q9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z2jbw8vsnofpi3on8r91.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The gist included in this article shows several cells how to customize plotly chart and how to highlight the data cross linked with sub plots.&lt;/p&gt;

&lt;p&gt;Finally, the code below shows a heatmap with dendrogram thanks to &lt;em&gt;heatmaply&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;heatmaply&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dplyr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;mtscaled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as.matrix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mtcars&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;heatmaply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mtscaled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k_row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k_col&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;embed_notebook&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"800"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QE0NoNho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a81qz7y8mxg6hldk4yfi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QE0NoNho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a81qz7y8mxg6hldk4yfi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>plotly</category>
      <category>r</category>
      <category>jupyter</category>
      <category>visualization</category>
    </item>
    <item>
      <title>Interactive or non-interactive visualization in Jupyter (Python version)?</title>
      <dc:creator>HongKee Moon</dc:creator>
      <pubDate>Thu, 27 Feb 2020 14:47:49 +0000</pubDate>
      <link>https://dev.to/hkmoon/interactive-or-non-interactive-visualization-2m5j</link>
      <guid>https://dev.to/hkmoon/interactive-or-non-interactive-visualization-2m5j</guid>
      <description>&lt;p&gt;Today's topic is how we can choose either interactive or non-interactive visualization components in jupyter especially in Python since quite a lot of people enjoy programming in Python environment. My journey begun from installing BeakerX plugin in jupyter because this extension provides a lot of different languages for learners or piloting code development. &lt;/p&gt;

&lt;h2&gt;
  
  
  Non-interactive
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Seaborn (&lt;a href="https://seaborn.pydata.org/"&gt;https://seaborn.pydata.org/&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;This package is quite useful to handle Panda dataframe mostly and gives fancy charts to analyze and take some insights a specific dataset. Seaborn is based on matplotlib by improving usability except interaction. When we have to check patterns on the dataset fast, seaborn would be a great choice.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;beakerx&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;beakerx.object&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;beakerx&lt;/span&gt;
&lt;span class="n"&gt;beakerx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pandas_display_default&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;matplotlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;
&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;matplotlib&lt;/span&gt; &lt;span class="n"&gt;inline&lt;/span&gt;

&lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pairplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hue&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"species"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The above script produces a pairplot which is shown as the cover image.&lt;br&gt;
Personally, static charts are easier to handle and do not require external javascript library loading. Non-interactive chart method is very useful for piloting, testing and checking datasets as web browser requires less memory where we can focus on more data intensive workflows.&lt;/p&gt;
&lt;h2&gt;
  
  
  Interactive
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Plotly (&lt;a href="https://plot.ly/"&gt;https://plot.ly/&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;Plotly supports wide range of languages such as Javascript, python and R. Therefore, we can get used to Plotly chart in any languages.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;plotly.express&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;px&lt;/span&gt;
&lt;span class="c1"&gt;# df = px.data.iris()
&lt;/span&gt;&lt;span class="n"&gt;fig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;px&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scatter_matrix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dimensions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"sepal_width"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"sepal_length"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"petal_width"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"petal_length"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"species"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"species"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Scatter matrix of iris data set"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'_'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update_traces&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;diagonal_visible&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---zcTpjQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ymku4u42jbur6x4wek67.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---zcTpjQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ymku4u42jbur6x4wek67.png" alt="Plotly_pairplot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Implicit interactive plot conversion in Plotly
&lt;/h2&gt;

&lt;p&gt;There is a way to convert implicitly to plotly plot from the pyplot. It requires a function named, &lt;em&gt;iplot_mpl&lt;/em&gt;. Here are brief source codes of doing the conversion.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;matplotlib&lt;/span&gt; &lt;span class="n"&gt;inline&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt; &lt;span class="c1"&gt;# side-stepping mpl backend
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.gridspec&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;gridspec&lt;/span&gt; &lt;span class="c1"&gt;# subplots
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;

&lt;span class="n"&gt;fig1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# Make a legend for specific lines.
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;


&lt;span class="n"&gt;t1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;t2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# note that plot returns a list of lines.  The "l1, = plot" usage
# extracts the first element of the list into l1 using tuple
# unpacking.  So l1 is a Line2D instance, not a sequence of lines
&lt;/span&gt;&lt;span class="n"&gt;l1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;l2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;l3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s"&gt;'--go'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s"&gt;'.'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;l4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s"&gt;'rs-.'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'time'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'volts'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Damped oscillation'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;plotly&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;py&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;plotly.tools&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tls&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;plotly.graph_objects&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;go&lt;/span&gt;

&lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;offline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iplot_mpl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fig1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If we want to remove the given styles, we need to create a Figure by using &lt;em&gt;mpl_to_plotly&lt;/em&gt;, then override the layouts like below&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;fig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tls&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mpl_to_plotly&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fig1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'layout'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'title'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Damped oscillation'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="s"&gt;'xaxis'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'anchor'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'y'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'domain'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s"&gt;'title'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'time'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
               &lt;span class="s"&gt;'yaxis'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'anchor'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'x'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'domain'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s"&gt;'title'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'volts'&lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;

&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'layout'&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;showlegend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;autosize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;template&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;offline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The whole source codes are in gist.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;In addition, we can show plotly charts here with runkit.&lt;/p&gt;


&lt;div class="runkit-element"&gt;
  &lt;code&gt;
    
// hidden setup JavaScript code goes in this preamble area
const hiddenVar = 42

  &lt;/code&gt;
  &lt;code&gt;
    
const wrapPlotly = require('runkit-plotly');

var makeChart = wrapPlotly((data, layout, Plotly) =&amp;gt; {
    Plotly.newPlot(layout, data);
});

var trace1 = {
  x: [1, 2, 3, 4, 5],
  y: [1, 3, 2, 3, 1],
  mode: "lines+markers",
  name: "'linear'",
  line: {shape: "linear"},
  type: "scatter"
};
var trace2 = {
  x: [1, 2, 3, 4, 5],
  y: [6, 8, 7, 8, 6],
  mode: "lines+markers",
  name: "'spline'",
  text: ["tweak line smoothness&amp;lt;br&amp;gt;with 'smoothing' in line object", "tweak line smoothness&amp;lt;br&amp;gt;with 'smoothing' in line object", "tweak line smoothness&amp;lt;br&amp;gt;with 'smoothing' in line object", "tweak line smoothness&amp;lt;br&amp;gt;with 'smoothing' in line object", "tweak line smoothness&amp;lt;br&amp;gt;with 'smoothing' in line object", "tweak line smoothness&amp;lt;br&amp;gt;with 'smoothing' in line object"],
  line: {shape: "spline"},
  type: "scatter"
};
var trace3 = {
  x: [1, 2, 3, 4, 5],
  y: [11, 13, 12, 13, 11],
  mode: "lines+markers",
  name: "'vhv'",
  line: {shape: "vhv"},
  type: "scatter"
};
var trace4 = {
  x: [1, 2, 3, 4, 5],
  y: [16, 18, 17, 18, 16],
  mode: "lines+markers",
  name: "'hvh'",
  line: {shape: "hvh"},
  type: "scatter"
};
var trace5 = {
  x: [1, 2, 3, 4, 5],
  y: [21, 23, 22, 23, 21],
  mode: "lines+markers",
  name: "'vh'",
  line: {shape: "vh"},
  type: "scatter"
};
var trace6 = {
  x: [1, 2, 3, 4, 5],
  y: [26, 28, 27, 28, 26],
  mode: "lines+markers",
  name: "'hv'",
  line: {shape: "hv"},
  type: "scatter"
};
var data = [trace1, trace2, trace3, trace4, trace5, trace6];
var layout = {legend: {
    y: 0.5,
    traceorder: "reversed",
    font: {size: 16},
    yref: "paper"
  }};

makeChart(data, layout);


  &lt;/code&gt;
&lt;/div&gt;



&lt;div class="runkit-element"&gt;
  &lt;code&gt;
    

let data = [
    {
      "box": {
        "visible": true
      },
      "uid": "738c261d-13bb-44e8-bb30-fc2fc4c6763b",
      "line": {
        "color": "#9b59b6"
      },
      "name": "sepal_length",
      "type": "violin",
      "x": [
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa"
      ],
      "y": [
        5.1,
        4.9,
        4.7,
        4.6,
        5,
        5.4,
        4.6,
        5,
        4.4,
        4.9,
        5.4,
        4.8,
        4.8,
        4.3,
        5.8,
        5.7,
        5.4,
        5.1,
        5.7,
        5.1,
        5.4,
        5.1,
        4.6,
        5.1,
        4.8,
        5,
        5,
        5.2,
        5.2,
        4.7,
        4.8,
        5.4,
        5.2,
        5.5,
        4.9,
        5,
        5.5,
        4.9,
        4.4,
        5.1,
        5,
        4.5,
        4.4,
        5,
        5.1,
        4.8,
        5.1,
        4.6,
        5.3,
        5
      ],
      "visible": true,
      "meanline": {
        "visible": true
      },
      "showlegend": true,
      "legendgroup": "sepal_length"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "a4f146f3-b97a-43fd-a01c-2229bbf34390",
      "line": {
        "color": "#3498db"
      },
      "name": "sepal_width",
      "type": "violin",
      "x": [
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa"
      ],
      "y": [
        3.5,
        3,
        3.2,
        3.1,
        3.6,
        3.9,
        3.4,
        3.4,
        2.9,
        3.1,
        3.7,
        3.4,
        3,
        3,
        4,
        4.4,
        3.9,
        3.5,
        3.8,
        3.8,
        3.4,
        3.7,
        3.6,
        3.3,
        3.4,
        3,
        3.4,
        3.5,
        3.4,
        3.2,
        3.1,
        3.4,
        4.1,
        4.2,
        3.1,
        3.2,
        3.5,
        3.6,
        3,
        3.4,
        3.5,
        2.3,
        3.2,
        3.5,
        3.8,
        3,
        3.8,
        3.2,
        3.7,
        3.3
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": true,
      "legendgroup": "sepal_width"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "6e46535b-b0ab-40d0-b1b6-39b0c9b891ef",
      "line": {
        "color": "#95a5a6"
      },
      "name": "petal_length",
      "type": "violin",
      "x": [
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa"
      ],
      "y": [
        1.4,
        1.4,
        1.3,
        1.5,
        1.4,
        1.7,
        1.4,
        1.5,
        1.4,
        1.5,
        1.5,
        1.6,
        1.4,
        1.1,
        1.2,
        1.5,
        1.3,
        1.4,
        1.7,
        1.5,
        1.7,
        1.5,
        1,
        1.7,
        1.9,
        1.6,
        1.6,
        1.5,
        1.4,
        1.6,
        1.6,
        1.5,
        1.5,
        1.4,
        1.5,
        1.2,
        1.3,
        1.4,
        1.3,
        1.5,
        1.3,
        1.3,
        1.3,
        1.6,
        1.9,
        1.4,
        1.6,
        1.4,
        1.5,
        1.4
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": true,
      "legendgroup": "petal_length"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "547a8dd0-4aae-4743-8bd8-f3f0c8af6c42",
      "line": {
        "color": "#e74c3c"
      },
      "name": "petal_width",
      "type": "violin",
      "x": [
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa",
        "setosa"
      ],
      "y": [
        0.2,
        0.2,
        0.2,
        0.2,
        0.2,
        0.4,
        0.3,
        0.2,
        0.2,
        0.1,
        0.2,
        0.2,
        0.1,
        0.1,
        0.2,
        0.4,
        0.4,
        0.3,
        0.3,
        0.3,
        0.2,
        0.4,
        0.2,
        0.5,
        0.2,
        0.2,
        0.4,
        0.2,
        0.2,
        0.2,
        0.2,
        0.4,
        0.1,
        0.2,
        0.2,
        0.2,
        0.2,
        0.1,
        0.2,
        0.2,
        0.3,
        0.3,
        0.2,
        0.6,
        0.4,
        0.3,
        0.2,
        0.2,
        0.2,
        0.2
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": true,
      "legendgroup": "petal_width"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "7460098e-f686-4b7c-981c-1adaa0f1188a",
      "line": {
        "color": "#9b59b6"
      },
      "name": "sepal_length",
      "type": "violin",
      "x": [
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor"
      ],
      "y": [
        7,
        6.4,
        6.9,
        5.5,
        6.5,
        5.7,
        6.3,
        4.9,
        6.6,
        5.2,
        5,
        5.9,
        6,
        6.1,
        5.6,
        6.7,
        5.6,
        5.8,
        6.2,
        5.6,
        5.9,
        6.1,
        6.3,
        6.1,
        6.4,
        6.6,
        6.8,
        6.7,
        6,
        5.7,
        5.5,
        5.5,
        5.8,
        6,
        5.4,
        6,
        6.7,
        6.3,
        5.6,
        5.5,
        5.5,
        6.1,
        5.8,
        5,
        5.6,
        5.7,
        5.7,
        6.2,
        5.1,
        5.7
      ],
      "visible": true,
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "sepal_length"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "a0d8f476-e2e4-46b7-bcb7-07df53102442",
      "line": {
        "color": "#3498db"
      },
      "name": "sepal_width",
      "type": "violin",
      "x": [
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor"
      ],
      "y": [
        3.2,
        3.2,
        3.1,
        2.3,
        2.8,
        2.8,
        3.3,
        2.4,
        2.9,
        2.7,
        2,
        3,
        2.2,
        2.9,
        2.9,
        3.1,
        3,
        2.7,
        2.2,
        2.5,
        3.2,
        2.8,
        2.5,
        2.8,
        2.9,
        3,
        2.8,
        3,
        2.9,
        2.6,
        2.4,
        2.4,
        2.7,
        2.7,
        3,
        3.4,
        3.1,
        2.3,
        3,
        2.5,
        2.6,
        3,
        2.6,
        2.3,
        2.7,
        3,
        2.9,
        2.9,
        2.5,
        2.8
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "sepal_width"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "0f1a0743-b96e-4454-9490-a94b9c9be18f",
      "line": {
        "color": "#95a5a6"
      },
      "name": "petal_length",
      "type": "violin",
      "x": [
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor"
      ],
      "y": [
        4.7,
        4.5,
        4.9,
        4,
        4.6,
        4.5,
        4.7,
        3.3,
        4.6,
        3.9,
        3.5,
        4.2,
        4,
        4.7,
        3.6,
        4.4,
        4.5,
        4.1,
        4.5,
        3.9,
        4.8,
        4,
        4.9,
        4.7,
        4.3,
        4.4,
        4.8,
        5,
        4.5,
        3.5,
        3.8,
        3.7,
        3.9,
        5.1,
        4.5,
        4.5,
        4.7,
        4.4,
        4.1,
        4,
        4.4,
        4.6,
        4,
        3.3,
        4.2,
        4.2,
        4.2,
        4.3,
        3,
        4.1
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "petal_length"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "040cbbbf-2803-4c1d-8f97-ac45105693ba",
      "line": {
        "color": "#e74c3c"
      },
      "name": "petal_width",
      "type": "violin",
      "x": [
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor",
        "versicolor"
      ],
      "y": [
        1.4,
        1.5,
        1.5,
        1.3,
        1.5,
        1.3,
        1.6,
        1,
        1.3,
        1.4,
        1,
        1.5,
        1,
        1.4,
        1.3,
        1.4,
        1.5,
        1,
        1.5,
        1.1,
        1.8,
        1.3,
        1.5,
        1.2,
        1.3,
        1.4,
        1.4,
        1.7,
        1.5,
        1,
        1.1,
        1,
        1.2,
        1.6,
        1.5,
        1.6,
        1.5,
        1.3,
        1.3,
        1.3,
        1.2,
        1.4,
        1.2,
        1,
        1.3,
        1.2,
        1.3,
        1.3,
        1.1,
        1.3
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "petal_width"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "a432ba40-7348-46af-99d7-6658e85bf724",
      "line": {
        "color": "#9b59b6"
      },
      "name": "sepal_length",
      "type": "violin",
      "x": [
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica"
      ],
      "y": [
        6.3,
        5.8,
        7.1,
        6.3,
        6.5,
        7.6,
        4.9,
        7.3,
        6.7,
        7.2,
        6.5,
        6.4,
        6.8,
        5.7,
        5.8,
        6.4,
        6.5,
        7.7,
        7.7,
        6,
        6.9,
        5.6,
        7.7,
        6.3,
        6.7,
        7.2,
        6.2,
        6.1,
        6.4,
        7.2,
        7.4,
        7.9,
        6.4,
        6.3,
        6.1,
        7.7,
        6.3,
        6.4,
        6,
        6.9,
        6.7,
        6.9,
        5.8,
        6.8,
        6.7,
        6.7,
        6.3,
        6.5,
        6.2,
        5.9
      ],
      "visible": true,
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "sepal_length"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "0f7b757c-9b2b-487d-979c-d3ceec62b7fa",
      "line": {
        "color": "#3498db"
      },
      "name": "sepal_width",
      "type": "violin",
      "x": [
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica"
      ],
      "y": [
        3.3,
        2.7,
        3,
        2.9,
        3,
        3,
        2.5,
        2.9,
        2.5,
        3.6,
        3.2,
        2.7,
        3,
        2.5,
        2.8,
        3.2,
        3,
        3.8,
        2.6,
        2.2,
        3.2,
        2.8,
        2.8,
        2.7,
        3.3,
        3.2,
        2.8,
        3,
        2.8,
        3,
        2.8,
        3.8,
        2.8,
        2.8,
        2.6,
        3,
        3.4,
        3.1,
        3,
        3.1,
        3.1,
        3.1,
        2.7,
        3.2,
        3.3,
        3,
        2.5,
        3,
        3.4,
        3
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "sepal_width"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "4d7756b5-8874-43c8-8981-6b945ee0378b",
      "line": {
        "color": "#95a5a6"
      },
      "name": "petal_length",
      "type": "violin",
      "x": [
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica"
      ],
      "y": [
        6,
        5.1,
        5.9,
        5.6,
        5.8,
        6.6,
        4.5,
        6.3,
        5.8,
        6.1,
        5.1,
        5.3,
        5.5,
        5,
        5.1,
        5.3,
        5.5,
        6.7,
        6.9,
        5,
        5.7,
        4.9,
        6.7,
        4.9,
        5.7,
        6,
        4.8,
        4.9,
        5.6,
        5.8,
        6.1,
        6.4,
        5.6,
        5.1,
        5.6,
        6.1,
        5.6,
        5.5,
        4.8,
        5.4,
        5.6,
        5.1,
        5.1,
        5.9,
        5.7,
        5.2,
        5,
        5.2,
        5.4,
        5.1
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "petal_length"
    },
    {
      "box": {
        "visible": true
      },
      "uid": "9a4e88df-50cf-4c96-afcb-81dadebb7388",
      "line": {
        "color": "#e74c3c"
      },
      "name": "petal_width",
      "type": "violin",
      "x": [
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica",
        "virginica"
      ],
      "y": [
        2.5,
        1.9,
        2.1,
        1.8,
        2.2,
        2.1,
        1.7,
        1.8,
        1.8,
        2.5,
        2,
        1.9,
        2.1,
        2,
        2.4,
        2.3,
        1.8,
        2.2,
        2.3,
        1.5,
        2.3,
        2,
        2,
        1.8,
        2.1,
        1.8,
        1.8,
        1.8,
        2.1,
        1.6,
        1.9,
        2,
        2.2,
        1.5,
        1.4,
        2.3,
        2.4,
        1.8,
        1.8,
        2.1,
        2.4,
        2.3,
        1.9,
        2.3,
        2.5,
        2.3,
        1.9,
        2,
        2.3,
        1.8
      ],
      "visible": "legendonly",
      "meanline": {
        "visible": true
      },
      "showlegend": false,
      "legendgroup": "petal_width"
    }
  ];

let layout = {
    "title": {
      "text": "Iris Dataset Distribution"
    }
  }; 
  &lt;/code&gt;
  &lt;code&gt;
    
const wrapPlotly = require('runkit-plotly');

var makeChart = wrapPlotly((data, layout, Plotly) =&amp;gt; {
    Plotly.newPlot(layout, data);
});

makeChart(data, layout);

  &lt;/code&gt;
&lt;/div&gt;


&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>plotly</category>
      <category>jupyter</category>
      <category>python</category>
      <category>visualization</category>
    </item>
    <item>
      <title>AutoTranslation from Python to Javascript in Jupyter</title>
      <dc:creator>HongKee Moon</dc:creator>
      <pubDate>Mon, 24 Feb 2020 16:15:31 +0000</pubDate>
      <link>https://dev.to/hkmoon/autotranslation-from-python-to-javascript-in-jupyter-40cc</link>
      <guid>https://dev.to/hkmoon/autotranslation-from-python-to-javascript-in-jupyter-40cc</guid>
      <description>&lt;p&gt;Today, we are going to think about how to bridge the data to different kernel. BeakerX project is quite useful as an extension of Jupyter notebook in order to use various kinds different languages which are based on Java. Therefore, when I have some chances to learn other languages, I can easily learn it from Jupyter notebook. It supports Clojure, Groovy, Java, Kotlin, R, SQL, Scala:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CnvSN9AE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0kotz4qbjhcnwmt6ep4y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CnvSN9AE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0kotz4qbjhcnwmt6ep4y.png" alt="BeakerX"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension also gives a way to bridge between different kernels for exchange of the data, called AutoTranslation (refer: &lt;a href="https://github.com/twosigma/beakerx"&gt;https://github.com/twosigma/beakerx&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Firstly, I generate random histogram data in Python. Then, we use beakerx data holder to save them. Secondly, we are going to use them for showing in amCharts.&lt;/p&gt;

&lt;p&gt;Here are whole source code which you can copy &amp;amp; paste. However, you should install BeakerX for your Jupyter. Please, read the instruction in &lt;a href="https://github.com/twosigma/beakerx"&gt;https://github.com/twosigma/beakerx&lt;/a&gt; for more information.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
 

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>jupyter</category>
      <category>beakerx</category>
      <category>python</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Visualization in Jupyter</title>
      <dc:creator>HongKee Moon</dc:creator>
      <pubDate>Fri, 21 Feb 2020 15:55:44 +0000</pubDate>
      <link>https://dev.to/hkmoon/visualization-in-jupyter-5c0f</link>
      <guid>https://dev.to/hkmoon/visualization-in-jupyter-5c0f</guid>
      <description>&lt;p&gt;Recently, I tried to load techan.js (&lt;a href="http://techanjs.org/"&gt;http://techanjs.org/&lt;/a&gt;) in a Jupyter notebook javascript kernel. However, it failed to load since techan.js is made in commonJS format. Jupyter javascript kernel inherently uses requirejs(&lt;a href="https://requirejs.org/"&gt;https://requirejs.org/&lt;/a&gt;) which support es6 based modules. &lt;/p&gt;

&lt;p&gt;One of good PRs is &lt;a href="https://github.com/andredumas/techan.js/pull/220"&gt;https://github.com/andredumas/techan.js/pull/220&lt;/a&gt; which converts the current commonJS system to ES6 module system. Therefore, I cloned it and changed some codes in order to be compatible with requirejs.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
 

&lt;p&gt;The output of the above cell is the cover image.&lt;/p&gt;

&lt;p&gt;In addition, I noted how to embed amcharts(&lt;a href="https://www.amcharts.com/"&gt;https://www.amcharts.com/&lt;/a&gt;) which is quite useful for visualization in Jupyter notebook as well.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
 

&lt;p&gt;The output of the amChart cell in Jupyter:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K44OXBHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/edpzx2t9rrdfiit7rmrb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K44OXBHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/edpzx2t9rrdfiit7rmrb.png" alt="AMChart in Jupyter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please, enjoy the visualization in javascript inside Jupyter notebook.&lt;/p&gt;

&lt;p&gt;Also, let me know if you need any helps to embed nice modules in Jupyter notebook.&lt;/p&gt;

</description>
      <category>jupyter</category>
      <category>visualization</category>
      <category>amcharts</category>
      <category>techanjs</category>
    </item>
  </channel>
</rss>
