python可视化Bokeh 线形图(带分页)
bokeh是python中一款基于网页的画图工具库,画出的图像以html格式保存
from bokeh.plotting import figure, show, output_file
figure是一个什么类型的数据?通过查看源代码,发现原来figure是一个函数,返回值为Figure类,Figure类以来自bokeh.models中的Plot类为父类,Figure类继承了Plot类中的各种属性
output_file("line.html")#输出到静态HTML文件
output_file("test.html", title="test.py")#可以定义标签
在python3中 figure可以直接写为 figure()
#figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)#例子
p = figure(plot_width=400, plot_height=400)#指定宽高大小
num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
p.square([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="olive", alpha=0.5)
Bokeh中有很多标记类型,通过调用不同的函数实现,详细如下:
asterisk()-星号circle()-圆形circle_cross()-圆形加十字circle_x()-圆形加X交叉cross()-十字diamond()-菱形diamond_cross()-菱形加十字inverted_triangle()-倒三角形square()-正方形square_cross()-正方形加十字square_x()-正方形加X交叉triangle()-三角形x()-X字
所有标记都具有相同的一组属性:横坐标x,纵坐标y,大小和角度。 此外,circle()具有可用于指定数据空间单位的半径属性,也就是可以画我们常说的气泡图。
show(p)
在html页面展示图像
#===============================
实战:
import MySQLdb as mdb #加载MySQLdb
import pandas as pd
from bokeh.layouts import widgetbox,row #载入小部件
from bokeh.models.widgets import Panel, Tabs #小部件中的工具载入
#widgets部件下还有 Button, RadioButtonGroup, Select, Slider
from bokeh.plotting import figure, show, output_fileX=[]
Y=[]
Z=[]
conn = mdb.connect(host='xxxxxxxxxx', port=xxxxx, user='xxxxx', passwd='xxxxxxx',db='xxxxxxx') #链接地址 库名
cursor1 = conn.cursor() #建立游标cursor()
sql1="select server_id,DATE(FROM_UNIXTIME(create_time/1000))as date1,round(SUM(amount),2)as pay " \"from superking_payment.success_record " \"GROUP BY date1,server_id"
#sql语句
cursor1.execute(sql1) #查询数据 execute()用于执行一个数据库的查询命令
res = cursor1.fetchall() #获取结果fetchall()获取结果集中剩下的所有行for i4 in range(len(res)):Z.append(res[i4][0])for i3 in range(len(res)):X.append(res[i3][2])for i in range(len(res)):Y.append(res[i][1])cursor1.close() #关闭游标close()
conn.close() #关闭连接close()'''date={'server_id':Z,'amount':X,'date1':Y}
a=pd.DataFrame(date)
se=[1]
se2=[2]a1=a.loc[a['server_id'].isin(se)] #a中'server_id'列包含se的全部显示
a2=a.loc[a['server_id'].isin(se2)]output_file("line.html") #输出到静态HTML文件
p1 = figure(plot_width=1200, plot_height=600,y_axis_type='linear',x_axis_type='datetime')
# 长 / 高 / 明确X轴为时间格式 / Y轴也可以设置 y_axis_type /y_range
# 并且X / Y 轴type只包含('linear', 'log', 'datetime', 'mercator')这几种
p1.xaxis.axis_label = 'pay' #X轴标签
p1.yaxis.axis_label = 'date_time' #Y轴标签
p1.line(a1['date1'], a1['amount'],legend='server_id1',color='#A6CEE3')#线条名称 线条颜色
tab1 = Panel(child=p1, title="server1")p2 = figure(plot_width=1200, plot_height=600,y_axis_type='linear',x_axis_type='datetime')
p2.xaxis.axis_label = 'pay' #X轴标签
p2.yaxis.axis_label = 'date_time' #Y轴标签
p2.line(a2['date1'], a1['amount'],legend='server_id2',color='#CD853F')#更多参数size=10, color="olive", alpha=0.5
tab2 = Panel(child=p2, title="server2")#widgets其他部件用法:
#slider = Slider(start=0, end=10, value=1, step=.1, title="Slider")
#button_group = RadioButtonGroup(labels=["Option 1", "Option 2", "Option 3"], active=0)
#select = Select(title="Option:", value="foo", options=["foo", "bar", "baz", "quux"])
# button_1 = Button(label='server1')
# button_2 = Button(label='server2')tabs = Tabs(tabs=[ tab1, tab2 ])
show(tabs)#row()/column()/gridplot()/widgetbox()/layout()
# row()的作用是将多个图像以行的方式放到同一张图中
# column()的作用是将多个图像以列的方式放到同一张图像中
# gridplot()以矩阵的方式将多个图像放到同一张图上,可以使用gridplot()函数,如果某个位置的图像为空,可以设定为None
# widgetbox()在图像中插入widgets(小部件),可以使用widgetbox()函数
# layout()函数的作用有两个# widgetbox()下还有Button, RadioButtonGroup, Select, Slider ,Panel, Tabs
补充:
p1.circle(x=a1['date1'], y=a1['amount'], fill_color='white',size=8)
#增加圆形节点 标签
#在p2.line(a2['date1'], a1['amount'],legend='server_id2',col....
下方增加
#=====================================================
参考文献:
https://blog.csdn.net/tankloverainbow/article/details/80442289
https://zhuanlan.zhihu.com/p/35392494
https://www.cnblogs.com/darkknightzh/p/6117528.html
https://blog.csdn.net/tankloverainbow/article/details/80464759
https://bokeh.pydata.org/en/latest/docs/user_guide/layout.html
附录:(matplotlib中color可用的颜色)
'aliceblue': '#F0F8FF',
'antiquewhite': '#FAEBD7',
'aqua': '#00FFFF',
'aquamarine': '#7FFFD4',
'azure': '#F0FFFF',
'beige': '#F5F5DC',
'bisque': '#FFE4C4',
'black': '#000000',
'blanchedalmond': '#FFEBCD',
'blue': '#0000FF',
'blueviolet': '#8A2BE2',
'brown': '#A52A2A',
'burlywood': '#DEB887',
'cadetblue': '#5F9EA0',
'chartreuse': '#7FFF00',
'chocolate': '#D2691E',
'coral': '#FF7F50',
'cornflowerblue': '#6495ED',
'cornsilk': '#FFF8DC',
'crimson': '#DC143C',
'cyan': '#00FFFF',
'darkblue': '#00008B',
'darkcyan': '#008B8B',
'darkgoldenrod': '#B8860B',
'darkgray': '#A9A9A9',
'darkgreen': '#006400',
'darkkhaki': '#BDB76B',
'darkmagenta': '#8B008B',
'darkolivegreen': '#556B2F',
'darkorange': '#FF8C00',
'darkorchid': '#9932CC',
'darkred': '#8B0000',
'darksalmon': '#E9967A',
'darkseagreen': '#8FBC8F',
'darkslateblue': '#483D8B',
'darkslategray': '#2F4F4F',
'darkturquoise': '#00CED1',
'darkviolet': '#9400D3',
'deeppink': '#FF1493',
'deepskyblue': '#00BFFF',
'dimgray': '#696969',
'dodgerblue': '#1E90FF',
'firebrick': '#B22222',
'floralwhite': '#FFFAF0',
'forestgreen': '#228B22',
'fuchsia': '#FF00FF',
'gainsboro': '#DCDCDC',
'ghostwhite': '#F8F8FF',
'gold': '#FFD700',
'goldenrod': '#DAA520',
'gray': '#808080',
'green': '#008000',
'greenyellow': '#ADFF2F',
'honeydew': '#F0FFF0',
'hotpink': '#FF69B4',
'indianred': '#CD5C5C',
'indigo': '#4B0082',
'ivory': '#FFFFF0',
'khaki': '#F0E68C',
'lavender': '#E6E6FA',
'lavenderblush': '#FFF0F5',
'lawngreen': '#7CFC00',
'lemonchiffon': '#FFFACD',
'lightblue': '#ADD8E6',
'lightcoral': '#F08080',
'lightcyan': '#E0FFFF',
'lightgoldenrodyellow': '#FAFAD2',
'lightgreen': '#90EE90',
'lightgray': '#D3D3D3',
'lightpink': '#FFB6C1',
'lightsalmon': '#FFA07A',
'lightseagreen': '#20B2AA',
'lightskyblue': '#87CEFA',
'lightslategray': '#778899',
'lightsteelblue': '#B0C4DE',
'lightyellow': '#FFFFE0',
'lime': '#00FF00',
'limegreen': '#32CD32',
'linen': '#FAF0E6',
'magenta': '#FF00FF',
'maroon': '#800000',
'mediumaquamarine': '#66CDAA',
'mediumblue': '#0000CD',
'mediumorchid': '#BA55D3',
'mediumpurple': '#9370DB',
'mediumseagreen': '#3CB371',
'mediumslateblue': '#7B68EE',
'mediumspringgreen': '#00FA9A',
'mediumturquoise': '#48D1CC',
'mediumvioletred': '#C71585',
'midnightblue': '#191970',
'mintcream': '#F5FFFA',
'mistyrose': '#FFE4E1',
'moccasin': '#FFE4B5',
'navajowhite': '#FFDEAD',
'navy': '#000080',
'oldlace': '#FDF5E6',
'olive': '#808000',
'olivedrab': '#6B8E23',
'orange': '#FFA500',
'orangered': '#FF4500',
'orchid': '#DA70D6',
'palegoldenrod': '#EEE8AA',
'palegreen': '#98FB98',
'paleturquoise': '#AFEEEE',
'palevioletred': '#DB7093',
'papayawhip': '#FFEFD5',
'peachpuff': '#FFDAB9',
'peru': '#CD853F',
'pink': '#FFC0CB',
'plum': '#DDA0DD',
'powderblue': '#B0E0E6',
'purple': '#800080',
'red': '#FF0000',
'rosybrown': '#BC8F8F',
'royalblue': '#4169E1',
'saddlebrown': '#8B4513',
'salmon': '#FA8072',
'sandybrown': '#FAA460',
'seagreen': '#2E8B57',
'seashell': '#FFF5EE',
'sienna': '#A0522D',
'silver': '#C0C0C0',
'skyblue': '#87CEEB',
'slateblue': '#6A5ACD',
'slategray': '#708090',
'snow': '#FFFAFA',
'springgreen': '#00FF7F',
'steelblue': '#4682B4',
'tan': '#D2B48C',
'teal': '#008080',
'thistle': '#D8BFD8',
'tomato': '#FF6347',
'turquoise': '#40E0D0',
'violet': '#EE82EE',
'wheat': '#F5DEB3',
'white': '#FFFFFF',
'whitesmoke': '#F5F5F5',
'yellow': '#FFFF00',
'yellowgreen': '#9ACD32'
python可视化Bokeh 线形图(带分页)相关推荐
- python条形图和线形图的绘制,并显示数据
1. matplotlib.pyplot库的简述 pyplot是matplotlib的子库,主要用于实现各种数据展示图形的绘制 首先导入此包,方便引用取个别名plt import matplotlib ...
- Python可视化 | Matplotlib绘制圆环图的两种方法!
人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制. 环形图,也被称为圆环图.它在功能上与饼图相同,只是中间有一个空白,并且能够同时支持多个统计数据.与标准饼图相比,环形图提供 ...
- Python数据分析19——matplotlib可视化(一)之线形图
matplotlib绘制线形图 线形图是最基本的图表了,没有之一,所以这是我们必须掌握的技能. 准备 首先,我们必须先安装matplotlib模块. pip install matplotlib 然后 ...
- [转载] 交互式数据可视化在Python中用Bokeh实现
参考链接: Python | 使用Bokeh进行数据可视化 文章转载自:http://www.zuimoban.com/jiaocheng/python/6615.html Bokeh是一个专门针对W ...
- 新视角带你认识Python可视化库(附代码资源)
作者:Dan Saber 翻译:笪洁琼 校对:梁傅淇 本文约16196字,建议阅读20+分钟. 本文中,作者借助拟人化的形式,让Python中值得一提的可视化库共同出演了一出戏剧,形象.生动地展现了不 ...
- python交互式绘图库_一个交互式可视化Python库——Bokeh
本篇为<Python数据可视化实战>第十篇文章,我们一起学习一个交互式可视化Python库--Bokeh. Bokeh基础 Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Py ...
- python 可视化饼图_Python可视化学习(饼状图,坐标系...)
写在前面的话 01 今天资源君带大家学习一下Python的可视化,何谓可视化呢?我们常常听说Python的数据分析,数据分析中很重要的一个就是将数据展示出来,如何展示出来呢?这就得靠我们的Python ...
- python bokeh教程_交互式数据可视化在Python中用Bokeh实现
Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库.这是Bokeh与其它可视化库最核心的区别.正如下图所示,它说明了Bokeh如何将数据展示到一个Web浏览器上的流程. 正如你 ...
- python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...
原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了mp.weixin.qq.com 有时候我们做数据可视化并 ...
最新文章
- mysql5.7.17主从_MySQL 5.7主从不停机添加新从库
- 001_Gson概述
- 使用WSE实现Web Service安全
- mysql怎么禁止远程连接_mysql如何设置禁止远程连接
- sql实现寻找中位数(使用sign、case、自定义变量等)
- ArcEngine二次开发_04(鼠标点击图层点显示属性(两个及以上))
- dos进入mysql不记得密码_windos mysql 忘记密码,无密码登录,重新登录
- python绘制简单城市剪影图_Python之绘制个人足迹地图
- C++调用C#编写的DLL【转】
- java详细安装教程(含安装包+详细安装视频)
- c++ 字符串替换指定字符
- PIL 库介绍与简单应用
- 我们需要谈论凯文:我试图建立一个值得信赖的Twitter机器人
- 给真的想【卷】的你们
- 'Bullet' object has no attribute 'draw_bullet'
- 大田智能灌溉系统解决方案
- c语言汇编语言在线转换,如何把汇编语言转换成C语言
- Verilog HDL 语言基础语法
- 开启AI世界的大门 —— 从人工智能到计算机视觉
- 【PFC离散元仿真核心技术与应用】专题来了
热门文章
- 能讲一下关于 18 世纪哲学家大卫 • 休谟和恐怖悖论吗
- linux 变量引用 和 变量的自动类型转换 c++,C++能不能让编译器自动推导变量类型吗...
- 【00】processing-历史(中文)
- mysql数据库表损坏修复方法(适用虚拟主机)
- 浙江省杭州职称评审申报时间
- learnopengl 中 pbr的球体算法
- ubuntu虚拟机迁移/移动/复制后无法上网
- 如何查看自己加入过的微信群
- eps罗马柱头制作方法_元阳好的eps罗马柱批发价格,罗马柱子制作
- 电信客户流失分析实战