专业的编程技术博客社区

网站首页 > 博客文章 正文

HvPlot - 基于HoloViews的pandas高级绘图python的API

baijin 2025-01-17 10:53:25 博客文章 7 ℃ 0 评论

1 说明:

=====

1.1 HvPlot - 基于HoloViews的pandas、dask、streamz和xarray高级绘图API。

1.2 HvPlot就是一个python高级数据可视化图库。

1.3 其实就是基于boken的,一行代码搞定的数据可视化基本作图。

1.4 本次代码是基于微软编辑器vscode,源代码基于jupyter的;

1.5 顺带复习pandas的读取csv文件,更具有实际操作特性。

2 准备:

=====

2.1 官网:

https://www.cnpython.com/pypi/hvplot
https://github.com/holoviz/hvplot  #数据来源这个包

2.2 环境:

华为笔记本电脑、深度deepin-linux操作系统、谷歌浏览器、python3.8和微软vscode编辑器。

2.3 安装:

pip install hvplot
#本机安装
sudo pip3.8 install hvplot
#本机推荐国内源安装
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple hvplot
#本机附带安装
sudo pip3.8 install intake
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple intake

2.4 软连接:

2.4.1 报警:

WARNING: The script colorcet is installed in '/usr/local/python3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  
  WARNING: The script hvplot is installed in '/usr/local/python3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

  WARNING: The scripts intake and intake-server are installed in '/usr/local/python3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

2.4.2 建议建立软连接:本机未进行软连接也行,必要时如下

sudo ln -s /usr/local/python3.8/bin/hvplot /usr/bin/hvplot

3 注意:

=====

3.1 数据集:crime.csv,是来源github的包,位于这个位置:


hvplot-master/examples/data/crime.csv,我将其放在指定位置。

3.2 修改源代码,用微软编辑器运行,自动打开浏览器,在网页上显示,支持中文,超级简单,基本上一行核心代码即可。

3.3 本代码为注释版,里面有详细的讲解。

4 折线图:

=======

4.1 代码:

#line线图
import hvplot as hv
import hvplot.pandas as hvpd
import pandas as pd
#调用pandas读取csv数据
df = pd.read_csv("/home/xgj/Desktop/hvplot/crime.csv")
#注意hvplot.line是调用hvplot.pandas这个包
#1组数据的比较
#方法一:hvplot.line==折线图
#xx=df.hvplot.line(x='Year', y='Violent Crime rate')

#方法二:kind='line'==折线图
#3组数据
xx=df.hvplot(x='Year', y=['Violent Crime rate', 'Robbery rate', 'Burglary rate'],
             value_label='Rate (per 100k people)', kind='line')
#浏览器展示xx图表
hv.show(xx)

4.2 操作和效果图:


5 散点图:

=======

5.1 代码:

import hvplot as hv
import hvplot.pandas as hvpd
import pandas as pd

#调用pandas读取csv数据
df = pd.read_csv("/home/xgj/Desktop/hvplot/crime.csv")
#注意hvplot.scatter是调用hvplot.pandas这个包
#xx=df.hvplot.scatter(x='Year', y='Violent Crime rate')
#1组数据
#xx=df.hvplot(x='Year', y='Violent Crime rate', kind='scatter')
#3组数据
xx=df.hvplot(x='Year', y=['Violent Crime rate', 'Robbery rate', 'Burglary rate'],
             value_label='Rate (per 100k people)', kind='scatter')

#浏览器展示xx图表
hv.show(xx)

5.2 效果图:

6 柱状图:

=======

6.1 代码:

import hvplot as hv
import hvplot.pandas as hvpd
import pandas as pd

#调用pandas读取csv数据
df = pd.read_csv("/home/xgj/Desktop/hvplot/crime.csv")
#取前10行数据,由于数据较多
dd=df.head(10)
#3组数据
xx=dd.hvplot(x='Year', y=['Violent Crime rate', 'Robbery rate', 'Burglary rate'],
             value_label='Rate (per 100k people)', kind='bar')

#浏览器展示xx图表
hv.show(xx)

6.2 效果图:

7 hexbin:

=======

7.1 代码:

import hvplot as hv
import hvplot.pandas as hvpd
import pandas as pd
#调用pandas读取csv数据
df = pd.read_csv("/home/xgj/Desktop/hvplot/crime.csv")
#只能一组数据展示
xx=df.hvplot.hexbin(x='Year', y='Violent Crime rate')
#浏览器展示xx图表
hv.show(xx)

7.2 效果图:

8 subplots:

========

8.1 代码:

import hvplot as hv
import hvplot.pandas as hvpd
import pandas as pd
#调用pandas读取csv数据
df = pd.read_csv("/home/xgj/Desktop/hvplot/crime.csv")
#3组数据,一个图
#xx=df.hvplot(x='Year', y=['Burglary rate', 'Violent Crime rate', 'Robbery rate'], value_label='Rate')
#3个子图subplots
xx=df.hvplot(x='Year', y=['Burglary rate', 'Violent Crime rate', 'Robbery rate'],
                value_label='Rate', subplots=True, width=300, height=200)
#浏览器展示xx图表
hv.show(xx)

8.2 效果图:

9 附带2个gif:

==========

9.1 networkx

9.1.1 需要安装这个模块:

pip install networkx

9.1.2 代码:

import networkx as nx
import hvplot.networkx as hvnx
G = nx.karate_club_graph()
xx=hvnx.draw_spring(G, labels='club', font_size='10pt', node_color='club', cmap='Category10', width=500, height=500)
hvnx.show(xx)

9.1.3 效果图:

9.2 Streaming.ipynb

9.2.1 代码省略。基于jupyter。

9.2.2 需安装:

sudo pip install -i https://mirrors.aliyun.com/pypi/simple streamz
#本机安装
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple streamz

9.2.2 效果图:

===自己整理并分享出来===

喜欢的人,请点赞、关注、评论、转发和收藏。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表