关注

python大佬的可视化工具-HoloViews

欢迎关注公众号: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.

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


pythonic生物人2020年文章合集

 

Python数据科学篇

  • 系统梳理了Python3基础NumPyPandasJupyter Notebook、及Anaconda的使用。

Anaconda

利用Anaconda在Windows及Linux下搭建Python环境【手把手版】
Conda|Python包和版本管理利器

Jupyter Notebook

玩转Jupyter Notebook5-配置python|R|Julia|Stata

玩转Jupyter Notebook4-【换个皮肤】吧!

玩转Jupyter Notebook3-(“魔法”命令篇)

玩转Jupyter Notebook2-(插件篇:16实用插件)

玩转Jupyter Notebook-(入门篇)

NumpyPandas

NumPy的过去现在和未来!

python数据分析包|Pandas-04pandas学习资料大放送

python数据分析包|Pandas&NumPy小抄(Cheat_Sheet)

python数据分析包|Pandas-03pandas读写表格数据

python数据分析包|Pandas-02之缺失值(NA)处理

python数据分析包|Pandas-01之DataFrame&Series

python数据分析包|NumPy-02

python数据分析包|NumPy-01

Python3基础

python3基础12详解模块和包(库)|构建|使用

python3基础11异常处理|文件读取|文件写入

python3基础10面向“对象”编程

python3基础09列表推导式|迭代器|生成器|匿名函数

python3基础08函数(python内置)

python3基础07函数(自定义)

python3基础06流程控制语句

python3基础05布尔类型和比较运算符

python3基础04字典(dict)和集合(set)

python3基础03列表(list)和元组(tuple)

python3基础02数值和字符串(二)

python3基础01数值和字符串(一)


 

统计学精进篇

征服统计学06|统计模型、抽样分布是什么?

征服统计学05|总体or估算总体均值、方差、标准差是什么?

征服统计学04|什么是统计学中的总体参数?

征服统计学03|什么是中心极限定理?

征服统计学02|什么是正态分布?

征服统计学01|什么是统计分布?


 

 

Python可视化篇

  • 系统梳理了Python中MatplotlibSeabornplotninepygal几个可视化package的使用;系统梳理了Python中可视化颜色的使用

MatplotlibSeaborn

Python可视化44|画个“圣诞树”

Python可视化|Matplotlib40-LaTeX in Matplotlib和python

Python可视化|Matplotlib39-Matplotlib 1.4W+字教程(珍藏版)

Python可视化|Matplotlib38-Matplotlib官方Cheat sheet(上篇)

Python可视化35|matplotlib&seaborn-一些有用的图

Python可视化34|matplotlib-多子图绘制(为所欲为版)

Python可视化33|matplotlib-rcParams及绘图风格(style)设置详解

Python可视化32|matplotlib-断裂坐标轴(broken_axis)|图例(legend)详解

Python可视化31|matplotlib-图添加文本(text)及注释(annotate)

Python可视化30|matplotlib-辅助线(axhline|vlines|axvspa|axhspan)

Python可视化29|matplotlib-饼图(pie)

Python可视化28|matplotlib绘制韦恩图(2-6组数据)

Python可视化27|seaborn绘制线型回归图曲线

Python可视化26|seaborn绘制分面图(seaborn.FacetGrid)

Python可视化25|seaborn绘制矩阵图

Python可视化24|seaborn绘制多变量分布图(jointplot|JointGrid)

Python可视化23|seaborn.distplot单变量分布图(直方图|核密度图)

Python可视化22|Seaborn.catplot(下)-boxenplot|barplot|countplot图

Python可视化21|Seaborn.catplot(上)-小提琴图等四类图

Python可视化20|Seaborn散点图&&折线图

Python可视化19|seborn图形外观设置

Python可视化17seborn-箱图boxplot

Python可视化matplotlib&seborn16-相关性heatmap

Python可视化matplotlib&seborn15-聚类热图clustermap

Python可视化matplotlib&seborn14-热图heatmap

Python可视化|matplotlib13-直方图(histogram)详解

Python可视化|matplotlib12-垂直|水平|堆积条形图详解

Python可视化|matplotlib11-绘制折线图matplotlib.pyplot.plot

Python可视化|matplotlib10-绘制散点图scatter

Python可视化|matplotlib04-绘图风格(plt.style)大全

Python可视化|matplotlib03-一文掌握marker和linestyle使用

python可视化|matplotlib02-matplotlib.pyplot坐标轴|刻度值|刻度|标题设置

python可视化|matplotlib01-绘图方式|图形结构

plotnine

Python可视化43|plotnine≈Python版ggplot2

pygal

Python可视化|pygal37-pygal用法及示例

颜色使用

Python可视化18|seborn-seaborn调色盘(六)

Python|R可视化|09-提取图片颜色绘图(五-颜色使用完结篇)

Python可视化|08-Palettable库中颜色条Colormap(四)

Python可视化|matplotlib07-自带颜色条Colormap(三)

Python可视化|matplotlib06-外部单颜色(二)

Python可视化|matplotlib05-内置单颜色(一)


R可视化篇

系统的梳理了ggplot2的图层图形语法一些R可视化包

R可视化23|Christmas tree

R可视化22|换妆利器-ggpattern

R可视化21|30个统计图绘制原理+使用场景+code

R可视化20|最基础元素详解(Modern Statistical Graphics)

R可视化19|ggplot2绘制常用30+个靓图(附R code)

R可视化18|ggstatsplot几行code终结SCI级图表统计+画图 (下)

R可视化17|ggstatsplot几行code终结SCI级图表统计+画图 (上)

R可视化16|《ggplot2:数据分析与图形艺术》最新版(第三版)笔记合集

R可视化15|27种常见物种解剖图轻松绘制

R可视化14|ggthemr、gsci、tvthemes助您绘制靓丽美图

R可视化13|ggplot2-图层图形语法 (5)

R可视化12|ggplot2-图层图形语法 (4)

R可视化11|ggplot2-图层图形语法 (3)

R可视化10|ggplot2-图层图形语法 (2)

R可视化09|ggplot2-图层图形语法 (1)

R可视化08|ggplot2图层-标度图层(scale layer)-图例篇

R可视化07|ggplot2图层-标度图层(scale layer)-颜色盘篇

R可视化06|ggplot2图层-标度图层(scale layer)-坐标轴篇

R可视化05|ggplot2图层-注释图层(Annotation layer)

R可视化04|ggplot2图层-统计变换图层(stat layer)

R可视化03|ggplot2图层-几何对象图层(geom layer)

R可视化02|ggplot2-ggplot2快速绘图

R可视化01|ggplot2-ggplot2简介

 

 

本文目录

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


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

 

 

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_21478261/article/details/115425925

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--