Python交互图表可视化Bokeh:3. 散点图
散点图
① 基本散点图绘制
② 散点图颜色、大小设置方法
③ 不同符号的散点图
1. 基本散点图绘制
- import numpy as np
- import pandas as pd
- import matplotlib.pyplot as plt
- % matplotlib inline
- import warnings
- warnings.filterwarnings('ignore')
- # 不发出警告
- from bokeh.io import output_notebook
- output_notebook()
- # 导入notebook绘图模块
- from bokeh.plotting import figure,show
- # 导入图表绘制、图标展示模块
p.circle()
- # 1、基本散点图绘制
- s = pd.Series(np.random.randn(80))
- # 创建数据
- p = figure(plot_width=600, plot_height=400)
- p.circle(s.index, s.values, # x,y值,也可以写成:x=s.index, y = s.values
- size=25, color="navy", alpha=0.5, # 点的大小、颜色、透明度(注意,这里的color是线+填充的颜色,同时线和填充可以分别上色,参数如下)
- fill_color = 'red',fill_alpha = 0.6, # 填充的颜色、透明度
- line_color = 'black',line_alpha = 0.8,line_dash = 'dashed',line_width = 2, # 点边线的颜色、透明度、虚线、宽度
- # 同时还有line_cap、line_dash_offset、line_join参数
- legend = 'scatter-circle', # 设置图例
- #radius = 2 # 设置点的半径,和size只能同时选一个
- )
- # 创建散点图,基本参数
- # bokeh对line和fill是同样的设置方法
- p.legend.location = "bottom_right"
- # 设置图例位置
- show(p)
2. 散点图不同 颜色上色/ 散点大小 的方法
两种为散点图颜色上色的方法
- # 2、散点图不同 颜色上色/散点大小 的方法
- # ① 数据中有一列专门用于设置颜色 / 点大小
- from bokeh.palettes import brewer
- rng = np.random.RandomState(1)
- df = pd.DataFrame(rng.randn(100,2)*100,columns = ['A','B'])
- # 创建数据,有2列随机值
- df['size'] = rng.randint(10,30,100) # 设置点大小字段
- # colormap1 = {1: 'red', 2: 'green', 3: 'blue'}
- # df['color1'] = [colormap1[x] for x in rng.randint(1,4,100)] # 调色盘1;
- df['color1'] = np.random.choice(['red', 'green', 'blue'], 100) #跟上面两行是一样的; 这两种都是在本身的数据中增加size和color1标签,再去绘制图标;
- print(df.head())
- p = figure(plot_width=600, plot_height=400)
- p.circle(df['A'], df['B'], # 设置散点图x,y值
- line_color = 'white', # 设置点边线为白色
- fill_color = df['color1'],fill_alpha = 0.5, # 设置内部填充颜色,这里用到了颜色字段
- size = df['size'] # 设置点大小,这里用到了点大小字段,按照size的随机数去设置点的大小
- )
- show(p)
- n = 8
- colormap2 = brewer['Blues'][n]
- print(colormap2)
- df['color2'] = [colormap2[x] for x in rng.randint(0,n,100)] # 通过调色盘2的方式
- print(df.head())
- # # 设置颜色字段
- # # 通过字典/列表,识别颜色str
- # # 这里设置了两个调色盘,第二个为蓝色渐变
- p = figure(plot_width=600, plot_height=400)
- p.circle(df['A'], df['B'], # 设置散点图x,y值
- line_color = 'white', # 设置点边线为白色
- fill_color = df['color2'],fill_alpha = 0.5, # 设置内部填充颜色,这里用到了颜色字段
- size = df['size'] # 设置点大小,这里用到了点大小字段,按照size的随机数去设置点的大小
- )
- show(p)
- # 2、散点图不同 颜色上色/散点大小 的方法
- # ② 遍历数据分开做图
- rng = np.random.RandomState(1)
- df = pd.DataFrame(rng.randn(100,2)*100,columns = ['A','B'])
- df['type'] = rng.randint(0,7,100)
- print(df.head())
- # 创建数据;type是做不同类别的一个分组
- colors = ["red", "olive", "darkred", "goldenrod", "skyblue", "orange", "salmon"]
- # 创建颜色列表
- p1 = figure(plot_width=600, plot_height=400)
- p2 = figure(plot_width=600, plot_height=400)
- p3 = figure(plot_width=600, plot_height=400)
- plst = [p1, p2, p3]
- # for t in df['type'].unique():
- for t,pi in zip(df['type'].unique()[:3], plst):
- #p = figure(plot_width=600, plot_height=400,tools = "pan,wheel_zoom,box_select,lasso_select,reset")
- pi.circle(df['A'][df['type'] == t], df['B'][df['type'] == t], # 设置散点图x,y值
- size = 20,alpha = 0.5,
- color = colors[t],
- legend = 'type%i' % t)
- show(pi)
- # 通过分类设置颜色
3. 不同符号的散点图
- # 3、不同符号的散点图
- # asterisk(), circle(), circle_cross(), circle_x(), cross(), diamond(), diamond_cross(), inverted_triangle()
- # square(), square_cross(), square_x(), triangle(), x()
- p = figure(plot_width=600, plot_height=400,x_range = [0,3], y_range = [0,7])
- p.circle_cross(1, 1, size = 30, alpha = 0.5, legend = 'circle_cross')
- p.asterisk(1, 2, size = 30, alpha = 0.5, legend = 'asterisk')
- p.circle_x(1, 3, size = 30, alpha = 0.5, legend = 'circle_x')
- p.cross(1, 4, size = 30, alpha = 0.5, legend = 'cross')
- p.diamond(1, 5, size = 30, alpha = 0.5, legend = 'diamond')
- p.diamond_cross(1, 6, size = 30, alpha = 0.5, legend = 'diamond_cross')
- p.inverted_triangle(2, 1, size = 30, alpha = 0.5, legend = 'inverted_triangle')
- p.square(2, 2, size = 30, alpha = 0.5, legend = 'square')
- p.square_cross(2, 3, size = 30, alpha = 0.5, legend = 'square_cross')
- p.square_x(2, 4, size = 30, alpha = 0.5, legend = 'square_x')
- p.triangle(2, 5, size = 30, alpha = 0.5, legend = 'triangle')
- p.x(2, 6, size = 30, alpha = 0.5, legend = 'x')
- p.legend.location = "bottom_right"
- # 设置图例位置
- show(p)
- # 详细参数可参考文档:http://bokeh.pydata.org/en/latest/docs/reference/plotting.html#bokeh.plotting.figure.Figure.circle
Python交互图表可视化Bokeh:3. 散点图的更多相关文章
- Python交互图表可视化Bokeh:1. 可视交互化原理| 基本设置
Bokeh pandas和matplotlib就可以直接出分析的图表了,最基本的出图方式.是面向数据分析过程中出图的工具:Seaborn相比matplotlib封装了一些对数据的组合和识别的功能:用S ...
- Python交互图表可视化Bokeh:5 柱状图| 堆叠图| 直方图
柱状图/堆叠图/直方图 ① 单系列柱状图② 多系列柱状图③ 堆叠图④ 直方图 1.单系列柱状图 import numpy as np import pandas as pd import matplo ...
- Python交互图表可视化Bokeh:7. 工具栏
ToolBar工具栏设置 ① 位置设置② 移动.放大缩小.存储.刷新③ 选择④ 提示框.十字线 1. 位置设置 import numpy as np import pandas as pd impor ...
- Python交互图表可视化Bokeh:6. 轴线| 浮动| 多图表
绘图表达进阶操作 ① 轴线设置② 浮动设置③ 多图表设置 1. 轴线标签设置 设置字符串 import numpy as np import pandas as pd import matplotli ...
- Python交互图表可视化Bokeh:4. 折线图| 面积图
折线图与面积图 ① 单线图.多线图② 面积图.堆叠面积图 1. 折线图--单线图 import numpy as np import pandas as pd import matplotlib.py ...
- Python交互图表可视化Bokeh:2. 辅助参数
图表辅助参数设置 辅助标注.注释.矢量箭头 参考官方文档:https://bokeh.pydata.org/en/latest/docs/user_guide/annotations.html#col ...
- Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?
Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...
- Python 数据图表工具的比较
Python 的科学栈相当成熟,各种应用场景都有相关的模块,包括机器学习和数据分析.数据可视化是发现数据和展示结果的重要一环,只不过过去以来,相对于 R 这样的工具,发展还是落后一些. 幸运的是,过去 ...
- Python绘图与可视化
Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...
随机推荐
- Day7--------------虚拟机网络服务
1.桥接 连接到本地的网卡,把本机的网卡看作是虚拟交换机 ping ip地址 arping -i eth0 192.168.11.11 返回物理MAC地址 #可以检查是否有重复 ...
- 走进科学之揭开神秘的"零拷贝"
前言 "零拷贝"这三个字,想必大家多多少少都有听过吧,这个技术在各种开源组件中都使用了,比如kafka,rocketmq,netty,nginx等等开源框架都在其中引用了这项技术. ...
- swift 实践- 10 -- UIProgressView
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoa ...
- 查看MySQL版本的命令及常用命令
Windows / Linux 系统 前提是已经正确安装了 MySQL,打开 Windows 系统中的命令行工具(Win + R --> 输入 cmd 并按下回车键)--> 输入命令: m ...
- Confluence 6 管理协同编辑 - 最大编辑者的限制
我们限制为最多 12 个用户可以同时对一个页面进行编辑.这个意味着当一个页面已经有 12 个用户正在编辑了,13 个用户是不能进入编辑界面的,直到 12 个用户中有一个用户已经离开了. 系统管理员可以 ...
- Confluence 6 数据库整合的方法 2:针对有大量附件的运行实例
设置准备 这个方法仅仅针对附件存储在文件系统中.如果你存储附件在数据库中,请参考 Attachment Storage Configuration 文档中的内容来找到如何在 2 种不同的文件存储方式之 ...
- Spark启动时的master参数以及Spark的部署方式
我们在初始化SparkConf时,或者提交Spark任务时,都会有master参数需要设置,如下: conf = SparkConf().setAppName(appName).setMaster(m ...
- ionic3 使用html2canvas将数据导出为图片,并下载本地
1.安装html2canvas npm install --save html2canvas 官方网站 https://html2canvas.hertzen.com/ 2.在需要的组件中引入html ...
- TabLayout和ViewPager
这里就说下tablayout+viewpager的实现方式:tablayout是android5.0推出来的一个MaterialDesign风格的控件,是专门用来实现tab栏效果的:功能强大,使用方便 ...
- PyCharm+SVN
首先电脑安装svn,并且确svn/bin下面有svn.exe文件 没有bin/svn.exe解决方法: 重新打开TortoiseSVN安装文件-Modify-Next后在command line cl ...