当前位置:主页 > 查看内容

python大佬的可视化工具-HoloViews

发布时间:2021-08-06 00:00| 位朋友查看

简介:欢迎关注 公众号pythonic生物人 holoviews是一个超级简洁的python可视化工具后端为bokeh、matplotlib、datashader库最擅长干的是一行代码搞定一张图(类似seaborn)如下文的河流图(Sankey) HoloViews helps you understand your data better, by letting you w……

欢迎关注公众号:pythonic生物人

holoviews是一个超级简洁的python可视化工具,后端为bokeh、matplotlib、datashader库,最擅长干的是一行代码搞定一张图(类似seaborn),如下文的河流图(Sankey);

HoloViews helps you understand your data better, by letting you work seamlessly with both the data?and?its graphical representation.

欢迎阅读类似文章(列出公众号的部分内容)

目录

01 - 精彩demo

?02 - 快速上手holoviews

holoviews安装

从scatter开始

使用“+”添加Layout

使用“*”添加Overlay

添加交互小部件

使用opts个性化图形设置

更多精彩


01 - 精彩demo

import pandas as pd
import holoviews as hv

hv.extension('matplotlib')

edges_df = pd.read_csv('fb_edges.csv')
nodes_df = pd.read_csv('fb_nodes.csv')

fb_nodes = hv.Nodes(nodes_df).sort()
fb_graph = hv.Graph((edges_df, fb_nodes), label='Facebook Circles')  #绘图

fb_graph.opts(cmap='Set1',
              node_color='circle',
              fig_size=350,
              show_frame=False,
              xaxis=None,
              yaxis=None,
              node_size=10)

?

edges = pd.read_csv('energy.csv')  #导入数据
sankey = hv.Sankey(edges, label='Energy Diagram')  #绘图
sankey.opts(label_position='left',
            edge_color='target',
            node_color='index',
            cmap='set1')  #图形属性设置

hv.Sankey(edges, label='Energy Diagram') 一行代码搞定小面的河流图~~

# 矩阵图
import holoviews as hv
from holoviews import opts

hv.extension('bokeh')

from bokeh.sampledata.iris import flowers
from holoviews.operation import gridmatrix

ds = hv.Dataset(flowers)

grouped_by_species = ds.groupby('species', container_type=hv.NdOverlay)
grid = gridmatrix(grouped_by_species, diagonal_type=hv.Scatter)#绘图

grid.opts(opts.Scatter(tools=['hover', 'box_select'], bgcolor='#efe8e2', fill_alpha=0.2, size=4))

02 - 快速上手holoviews

holoviews安装

pip install holoviews -i https://pypi.tuna.tsinghua.edu.cn/simple

从scatter开始

import pandas as pd
import numpy as np
import holoviews as hv
from holoviews import opts

hv.extension('bokeh', 'matplotlib')  #导入扩展'bokeh','matplotlib'
station_info = pd.read_csv('station_info.csv')
hv.Scatter(station_info, 'services', 'ridership')  #轻松绘制散点图

使用“+”添加Layout

# 使用“+”添加Layout
hv.Scatter(station_info, 'services', 'ridership') + \
hv.Histogram(
    np.histogram(station_info['opened'], bins=24), kdims=['opened'])+\
hv.Scatter(station_info, 'services', 'ridership')

使用“*”添加Overlay

# 使用“*”添加Overlay
taxi_dropoffs = {
    hour: arr
    for hour, arr in np.load('hourly_taxi_data.npz').items()
}

bounds = (-74.05, 40.70, -73.90, 40.80)
image = hv.Image(taxi_dropoffs['0'], ['lon', 'lat'], bounds=bounds)
points = hv.Points(station_info, ['lon', 'lat'])
image + image * points

添加交互小部件

# 添加交互小部件
dictionary = {
    int(hour): hv.Image(arr, ['lon', 'lat'], bounds=bounds)
    for hour, arr in taxi_dropoffs.items()
}
hv.HoloMap(dictionary, kdims='Hour')

使用opts个性化图形设置

# 默认bokeh后端
spike_train = pd.read_csv('spike_train.csv.gz')
curve = hv.Curve(spike_train, 'milliseconds', 'Hertz')  # 折线图
spikes = hv.Spikes(spike_train, 'milliseconds', [])  # 条形码

layout = curve + spikes  #
layout

#opts个性化图形属性设置
layout.opts(
    #Options
    opts.Curve(height=200,
               width=900,
               xaxis=None,
               line_width=1.50,
               color='red',
               tools=['hover']),
    opts.Spikes(height=150,
                width=900,
                yaxis=None,
                line_width=0.25,
                color='grey')).cols(1)

更多精彩

https://github.com/holoviz/holoviews

?

?

;原文链接:https://blog.csdn.net/qq_21478261/article/details/115425925
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐