详解利用python-highcharts库绘制交互式可视化图表
作者:宁俊骐 发布时间:2022-05-05 14:29:53
今天小编给大家推荐一个超强交互式可视化绘制工具-python-highcharts,熟悉HightCharts绘图软件的小伙伴对这个不会陌生,python-highcharts就是使用Python进行Highcharts项目绘制,简单的说就是实现Python和Javascript之间的简单转换层,话不多说,我们直接进行介绍,具体包括以下几个方面:
python-highcharts库的简单介绍
python-highcharts 具体案例
python-highcharts库的简单介绍
python-highcharts库作为优秀的第三方库,其实现了对HightCharts项目的Python封装应用,里面关于图表细节的设置还是基于Javascript代码,但较简单,可以进行随意更改。
需要注意的是,由于HightCharts可以免费用于非商业用途,所以使用python-highcharts绘制也是如此,商业用途需要购买单独的许可证。我们这里当作练习即可~~
python-highcharts库绘制的图形主要包括如下类别:
Highcharts:绘制如折线图、散点图等常规图表;
Highstock:绘制股价走势图表;
Highmaps:绘制地图;
python-highcharts 具体案例
这一部分,小编分别主要介绍Highcharts的样例,因为Highstock和Highmaps使用较少,且反应较慢,这里不做介绍哈。详细内容如下:
「样例一」
from highcharts import Highchart
H = Highchart()
data = list(range(1,20))
data2 = list(range(20,1,-1))
#绘制
H.add_data_set(data2,'line')
H.add_data_set(data, 'line')
H
Example01 Of Highchart
备注:所有图表都是交互式的,这里展示的为静态图片。
你还可以通过添加交互点击时的状态,如下:
H.add_data_set(data2,'line')
H.add_data_set(data, 'line',
marker={
'states': {
'hover': {
'enabled': True,
'fillColor': 'white',
'lineColor': 'red',
'lineWidth': 2
}
}
},
events={
'click': "function (event) { alert(this.name + ' clicked\\n' + 'Alt: ' + event.altKey + '\\n' + \
'Control: ' + event.ctrlKey + '\\n' + 'Shift: ' + event.shiftKey + '\\n');}"},
dashStyle='ShortDash'
)
options = {
'xAxis':{
'plotBands':
[{'color': '#FCFFC5', 'from': 2, 'to': 4},
{'color': '#FCFFC5', 'from': 6, 'to': 8},
{'color': '#FCFFC5', 'from': 10, 'to': 12}]
}
}
H.set_dict_options(options)
Example02 Of Highchart
样例二
这个例子小编获取Highcharts官网样例进行再现,详细如下:
from highcharts import Highchart
chart = Highchart()
data01 = [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
data02 =[24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
data03 =[11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]
data04 = [550, 780, 7988, 12169, 15112, 22452, 34400, 34227]
data05 = [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
chart.add_data_set(data01,'line',name='安装,实施人员')
chart.add_data_set(data02, 'line', name='工人')
chart.add_data_set(data03,'line',name='销售')
chart.add_data_set(data04, 'line', name='项目开发')
chart.add_data_set(data05,'line',name='其他')
options = {
"title": {
"text": '2010 ~ 2016 年太阳能行业就业人员发展情况'},
"subtitle": {
"text": '数据来源:thesolarfoundation.com'},
"yAxis": {
"title": {
"text": '就业人数'
}},
"legend": {
"layout": 'vertical',
"align": 'right',
"verticalAlign": 'middle'
}}
chart.set_dict_options(options)
chart
Example03 Of Highchart
「样例二」
from highcharts import Highchart
chart = Highchart()
#name: 'Hestavollane',
data01 = [4.3, 5.1, 4.3, 5.2, 5.4, 4.7, 3.5, 4.1, 5.6, 7.4, 6.9, 7.1,
7.9, 7.9, 7.5, 6.7, 7.7, 7.7, 7.4, 7.0, 7.1, 5.8, 5.9, 7.4,
8.2, 8.5, 9.4, 8.1, 10.9, 10.4, 10.9, 12.4, 12.1, 9.5, 7.5,
7.1, 7.5, 8.1, 6.8, 3.4, 2.1, 1.9, 2.8, 2.9, 1.3, 4.4, 4.2,
3.0, 3.0]
#name: 'Voll',
data02 = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.3, 0.0,
0.0, 0.4, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.6, 1.2, 1.7, 0.7, 2.9, 4.1, 2.6, 3.7, 3.9, 1.7, 2.3,
3.0, 3.3, 4.8, 5.0, 4.8, 5.0, 3.2, 2.0, 0.9, 0.4, 0.3, 0.5, 0.4]
chart.add_data_set(data01,'spline',name='Hestavollane')
chart.add_data_set(data02, 'spline', name='Voll')
options = {
"title": {
"text": '风速变化趋势图'
},
"subtitle": {
"text": '2009年10月6日和7日两地风速情况'
},
"xAxis": {
"type": 'datetime',
"labels": {
"overflow": 'justify'
}
},
"yAxis": {
"title": {
"text": '风 速 (m/s)'
},
"min": 0,
"minorGridLineWidth": 0,
"gridLineWidth": 0,
"alternateGridColor": None,
"plotBands": [{ #// Light air
"from": 0.3,
"to": 1.5,
"color": 'rgba(68, 170, 213, 0.1)',
"label": {
"text": '轻空气',
"style": {
"color": '#606060'
}
}
}, { #// Light breeze
"from": 1.5,
"to": 3.3,
"color": 'rgba(0, 0, 0, 0)',
"label": {
"text": '微风',
"style": {
"color": '#606060'
}
}
}, { #// Gentle breeze
"from": 3.3,
"to": 5.5,
"color": 'rgba(68, 170, 213, 0.1)',
"label": {
"text": '柔和风',
"style": {
"color": '#606060'
}
}
}, { #// Moderate breeze
"from": 5.5,
"to": 8,
"color": 'rgba(0, 0, 0, 0)',
"label": {
"text": '温和风',
"style": {
"color": '#606060'
}
}
}, { #// Fresh breeze
"from": 8,
"to": 11,
"color": 'rgba(68, 170, 213, 0.1)',
"label": {
"text": '清新风',
"style": {
"color": '#606060'
}
}
}, { #// Strong breeze
"from": 11,
"to": 14,
"color": 'rgba(0, 0, 0, 0)',
"label": {
"text": '强风',
"style": {
"color": '#606060'
}
}
}, { #// High wind
"from": 14,
"to": 15,
"color": 'rgba(68, 170, 213, 0.1)',
"label": {
"text": '狂风',
"style": {
"color": '#606060'
}
}
}]
},
"tooltip": {
"valueSuffix": ' m/s'
},
"plotOptions": {
"spline": {
"lineWidth": 4,
"states": {
"hover": {
"lineWidth": 5
}
},
"marker": {
"enabled": False
},
"pointInterval": 3600000, #// one hour
}
}
}
chart.set_dict_options(options)
chart
Example04 Of Highchart
小编有话说:基本上官网提供的例子,python-highcharts都是可以实现的,前提是对这个库有一定的了解程度。当然,会一点JS更好~~ 更多关于此包绘制方法详细内容可参考:python-highcharts[1] 和HightCharts[2]
来源:https://mp.weixin.qq.com/s/x7KXD-EtgtNZg3msHs9XEA
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 1. 创建用户模块应用创建应用users$ python manage.py startapp users 2. 注册用户模块应用
- 首先要解释一下:“极致之美”不是说月儿的这篇文章,因为本人还没有自大到这种程度:P,它形容的是Lisp和javascript结合的优美形态。
- JDBC(Java Database Connectivity),即Java数据库连接。通过JDBC编程,可以使Java应用程序和数据库进行
- 在登陆PLSQL Developer时报ora-12513错误,需要修改本地数据库的监听配置文件,其过程相对简单。在Oracle安装目录中搜
- 本文实例为大家分享了java连接mysql底层封装代码,供大家参考,具体内容如下连接数据库package com.dao.db;import
- Kubernetes的控制器模式是其非常重要的一个设计模式,整个Kubernetes定义的资源对象以及其状态都保存在etcd数据库中,通过a
- 前言大家都知道Python的优点是开发效率高,使用方便,C++则是运行效率高,这两者可以相辅相成,不管是在Python项目中嵌入C++代码,
- 本文实例讲述了php实现xml与json之间的相互转换功能。分享给大家供大家参考,具体如下:用php实现xml与json之间的相互转换:相关
- 如何用SQLMail建立一个电子刊物自动处理系统?下面我们用SQLMail来做一个电子刊物自动处理系统。在这个系统中,主要实现两个功能:1、
- 在进行小数计算的时候使用float,经常会出现小数位不精确的情况。在python编程中,推荐使用decimal来完成小数位的精度计算。dec
- 服务器有多张显卡,一般是组里共用,分配好显卡和任务就体现公德了。除了在代码中指定使用的 GPU 编号,还可以直接设置可见 GPU 编号,使程
- python批量命名照片的具体代码,供大家参考,具体内容如下废话不多说,上效果图全部代码from tkinter import *impor
- load事件<script type="text/javascript"> $('img
- 需求:用的是django的框架,想显示一个基本固定的页面,用到了form_layout上图的ROW中添加的是model中的字段名,可以显示对
- 中小站点简单备份策略基于drupal的中小行网站,我们可以使用backup_migrate模块,该模块提供了定期备份的功能,备份的时间、保留
- import cv2import numpy as npimport matplotlib.pyplot as plt# Grayscale
- 卡口转换率将数据导入hive,通过SparkSql编写sql,实现不同业务的数据计算实现,主要讲述车辆卡口转换率,卡口转化率:主要计算不同卡
- Go 中接口也是一个使用得非常频繁的特性,好的软件设计往往离不开接口的使用,比如依赖倒置原则(通过抽象出接口,分离了具体实现与实际使用的耦合
- GMSSL模块介绍GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友
- 前言本文旨在记录使用Flask框架过程中与前端Vue对接过程中,存在WebSocket总是连接失败导致前端取不到数据的问题。以及在使用Web