【Python与机器学习 3-5】绘制可交互式图表

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxfhahaha/article/details/79898627

d3.js

D3(Data-Driven Documents),被数据驱动的文档。是一个用动态图形显示数据的JavaScript库,一个数据可视化的工具。

d3的python 接口为mpld3

将Matplotlib和D3js结合起来的基于Python的可视化工具。

安装

pip install mpld3

实现可交互插件

from mpld3 import plugins

实现交互式图例

即点击图例的时候他会显示或者隐藏,方便用户看自己想看的数据

# 准备数据
np.random.seed(100)
df = pd.DataFrame({'A': np.random.randn(365).cumsum(0),
                  'B': np.random.randn(365).cumsum(0) + 20,
                  'C': np.random.randn(365).cumsum(0) - 20},
                 index=range(365))
df.head()
#画图
fig, ax = plt.subplots(figsize=(12, 8))
labels = df.columns.tolist()
lines = ax.plot(df.index.values, df.values, lw=2)
interactive_legend = plugins.InteractiveLegendPlugin(lines, labels) #生成可交互式图例对象
plugins.connect(fig, interactive_legend) #把生成的对象和画布连接起来
mpld3.display()

这里写图片描述

图像保存成html,即在web端显示

with open('./interactive_legend_eg.html', 'w') as f:
    mpld3.save_html(fig, f)

echarts

百度的产品
一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。

使用方法

用Python的接口pyecharts

pip install pyecharts

pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图

详细使用方法

http://pyecharts.org/#/zh-cn/prepare

柱状图交互式图例

from pyecharts import Bar
# 上次案例的数据
comp_df = pd.read_csv('./comparison_result.csv', index_col='state')
good_state_results = comp_df.iloc[0, :].values
heavy_state_results = comp_df.iloc[1, :].values
light_state_results = comp_df.iloc[2, :].values
medium_state_results = comp_df.iloc[3, :].values

labels = comp_df.index.values.tolist()
city_names = comp_df.columns.tolist()

bar = Bar("堆叠柱状图")
bar.add('良好', city_names, good_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30)
bar.add('轻度污染', city_names, light_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30)
bar.add('中度污染', city_names, medium_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30)
bar.add('重度污染', city_names, heavy_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30)
bar #输出

这里写图片描述

这里写图片描述

保存结果到html

bar.render('./echarts_demo.html')

Python可以搭web框架,然后用numpy和pandas进行数据分析,再用TensorFlow建模

这里写图片描述

展开阅读全文

没有更多推荐了,返回首页