如何将D3.js的酷炫延续到Python中?

Posted qq_21478261

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将D3.js的酷炫延续到Python中?相关的知识,希望对你有一定的参考价值。

Python的Matplotlib可视化库与javascript的D3js强交互可视化库结合后,mpld3诞生,mpld3弥补Matplotlib的弱交互能力,可将matplotlib图像导出为html代码,进而运用于浏览器网页、博客等中。

 

安装

pip install mpld3

mpld3常规交互

Matplotlib案例

mpld3辅助Matplotlib开启交互模式,仅需一行代码mpld3.enable_notebook()或者mpld3.display() 

import matplotlib.pyplot as plt
import mpld3  #导入mpld3
import numpy as np

plt.style.use('bmh')
plt.figure(dpi=120)
plt.scatter(np.random.random(150),
            np.random.random(150),
            s=300,
            c=np.random.random(150),
            alpha=0.8)

mpld3.enable_notebook()  #jupyter notebook中渲染图形
#mpld3.display() #同上,jupyter notebook中渲染图形

 

mpld3.disable_notebook() 关闭交互模式,

import matplotlib.pyplot as plt
import mpld3  #导入mpld3
import numpy as np

plt.style.use('bmh')
plt.figure(dpi=120)
plt.scatter(np.random.random(150),
            np.random.random(150),
            s=300,
            c=np.random.random(150),
            alpha=0.8)

mpld3.disable_notebook() #关闭mpld3交互,恢复默认matplotlib样式

Seaborn案例

 Seaborn底层是Matplotlib,所以mpld3对Seaborn同样奏效,拿矩阵图为例,

import seaborn as sns
iris_sns = sns.load_dataset("iris")
g = sns.pairplot(
    iris_sns,
    hue='species',
    palette='Set1',  #使用传入的颜色list
    vars=['sepal_length', 'sepal_width'])
g.fig.set_size_inches(12,6)
mpld3.enable_notebook()

mpld3的Plugins特性

mpld3除了常规交互能力,另一个重要特性就是插件功能,插件功能可为绘图定制额外交互功能,

刷选联动插件案例

from mpld3 import plugins

fig, ax = plt.subplots(3, 3, dpi=150)
fig.subplots_adjust()
ax = ax[::-1]

X = np.random.normal(size=(3, 100))
for i in range(3):
    for j in range(3):
        ax[i, j].xaxis.set_major_formatter(plt.NullFormatter())
        ax[i, j].yaxis.set_major_formatter(plt.NullFormatter())
        points = ax[i, j].scatter(X[j], X[i], c=np.random.random(100))

plugins.connect(fig, plugins.LinkedBrush(points))
mpld3.enable_notebook()

滚动插件案例 


进一步学习:如何将D3.js的强交互延续到Matplotlib中?

以上是关于如何将D3.js的酷炫延续到Python中?的主要内容,如果未能解决你的问题,请参考以下文章

打算放弃PythonD3可视化,这个可视化工具tql

Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面

《 如何构建老板心中的酷炫报表》开课啦 !

8套程序员开发的酷炫大屏,一个代码不用敲,直接领取

基于threejs的酷炫年会抽奖

linux 常用的酷炫命令