python中画散点图
python中画散点图
示例代码:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D data = np.random.randint(0, 255, size=[40, 40, 40]) x, y, z = data[0], data[1], data[2]
ax = plt.subplot(111, projection='3d') # 创建一个三维的绘图工程
# 将数据点分成三部分画,在颜色上有区分度
ax.scatter(x[:10], y[:10], z[:10], c='y') # 绘制数据点
ax.scatter(x[10:20], y[10:20], z[10:20], c='r')
ax.scatter(x[30:40], y[30:40], z[30:40], c='g') ax.set_zlabel('Z') # 坐标轴
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()
今天想在散点图的某些特定的点外面画圆圈标记,从下面的文章找到一些灵感,只要在原来的散点图上面给指点添加相应的标志,设置其透明度就可以实现该想法。
顺便复习下散点图的用法。
大家平时为了直观地显示数据的分布情况,在画散点图的时候,简单地把数据点用圆点标出来,像这样:
这样:
还有这样:
然而今天我想给大家展示的散点图,或许没有那么直观地反映数据的分布情况,不够实用,但是真的很美很艺术,每个的点的颜色和大小都不一样,形状也是多变的。比如五角星的散点图:
圆点的散点图:
Y形的散点图:
等等还有很多,那么这些漂亮的形状是怎么画出来的呢?其实代码很简单:
- from numpy import *;
- N = 50 # 点的个数
- x = np.random.rand(N) * 2 # 随机产生50个0~2之间的x坐标
- y = np.random.rand(N) * 2 # 随机产生50个0~2之间的y坐标
- colors = np.random.rand(N) # 随机产生50个0~1之间的颜色值
- area = np.pi * (15 * np.random.rand(N))**2 # 点的半径范围:0~15
- # 画散点图
- plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker=(9, 3, 30))
- plt.show()
这里用到一个matplotlib.pyplot子库中画散点图的函数 matplotlib.pyplot.scatter(x, y, s=20, c=None, marker='o',
cmap=None, norm=None, vmin=None, vmax=None, alpha=None,
linewidths=None, verts=None, edgecolors=None, hold=None,
data=None, **kwargs)
这个函数接收的参数很多,有默认值的平时也不需要我们指定,是可选的,这次我们用到的除了基本的x ,y参数,还有c,s,alpha和marker,c就是为点指定的颜色数组,s是点的面积大小,alpha是点的颜色的透明度,marker是指定点标记的形状。在例子里指定透明度为0.5,c和s是随机生成的,我们要改变的是marker的值,marker有很多值可供选择,下表展示了在例子代码的基础上,改变marker的值后的效果:
| marker | result |
|---|---|
| ”.” | |
| ”,” | |
| “o” | |
| “v” | |
| “^” | |
| “<” | |
| “>” | |
| “1” | |
| “2” | |
| “3” | |
| “4” | |
| “8” | |
| “s” | |
| “p” | |
| “*” | |
| “h” | |
| “H” | |
| “+” | |
| “x” | |
| “D” | |
| “d” | |
| “ | ” |
| “_” | |
| “None” | 没错就是什么都没有。。。 |
| “$…$” | |
| (numsides, style, angle) eg:(9,0, 30) 注:numsides是边的个数, angle是旋转角度, style只有0,1,2,3四个值 |
|
| (numsides, style, angle) eg:(9,1, 30) |
|
| (numsides, style, angle) eg:(9,2, 30) |
|
| (numsides, style, angle) eg:(9,3, 30) 注:此时numsides和angle的值自动被忽略 |
……
这么多种点的形状符号够我们用了吧~以后想用哪种查一下就好啦~
python中画散点图的更多相关文章
- python中如何给散点图上面的特定点做标记
今天想在散点图的某些特定的点外面画圆圈标记,从下面的文章找到一些灵感,只要在原来的散点图上面给指点添加相应的标志,设置其透明度就可以实现该想法. 顺便复习下散点图的用法. 大家平时为了直观地显示数据的 ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- Vue中使用ECharts画散点图加均值线与阴影区域
[本文出自天外归云的博客园] 需求 1. Vue中使用ECharts画散点图 2. 在图中加入加均值线 3. 在图中标注出阴影区域 实现 实现这个需求,要明确两点: 1. 知道如何在vue中使用ech ...
- python—networkx:在一张图中画出多个子图
通过plt.subplot能够在一张图中画出多个子图 #coding: utf-8 #!/usr/bin/env python """ Draw a graph with ...
- python中利用matplotlib绘图可视化知识归纳
python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...
- Python中matplotlib模块解析
用Matplotlib绘制二维图像的最简单方法是: 1. 导入模块 导入matplotlib的子模块 import matplotlib.pyplot as plt import numpy as ...
- 数字的可视化:python画图之散点图sactter函数详解
最近开始学习python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- 使用scatter画散点图
刚开始接触Python,照着例子写的代码,百度注释的. from numpy import * import matplotlib import matplotlib.pyplot as plt im ...
- 炼数成金数据分析课程---10、python中如何画图
炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...
随机推荐
- functional program language
1.什么是函数式编程语言 函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组 ...
- Python基础进程和线程
一 背景知识 进程的概念起源于操作系统,是操作系统最核心的概念. 进程是对正在运行程序的一个抽象,操作系统的其他所有内容都是围绕进程的概念展开的.所以想要真正了解进程,必须事先了解操作系统,egon介 ...
- 使用sync 修饰符------子组件内部可以修改props
首先看一个需求,外部点击一个按钮,让弹窗组件显示(也就是将弹窗组件显示的flag置为true),点击弹窗组件内部的某个按钮 ,让改props置为false,关闭弹窗,但是会报警告,因为内层组件不能修改 ...
- DBUtils和连接池
今日内容介绍 1.DBUtils 2.连接池 ###01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类 * a: 概述 * DBUtils是java编程中的数 ...
- mtail 部署说明
了解一个工具最好的方式是先--help 下,看看支持的命令以及参数 启动mtail 最基本的参数: --logs 支持需要处理的log 文件,支持通过glob 模式的额查找,可以指定多次 --prog ...
- oracle-锁概念
http://liwenshui322.iteye.com/blog/1166934 ORACLE DDL锁介绍 在DDL操作中会自动为对象加DDL锁(DDL Lock),从而保护这些对象不会被其他会 ...
- c# 线程同步各类锁
1)原子操作(Interlocked):所有方法都是执行一次原子读取或一次写入操作. 2)lock()语句:避免锁定public类型,否则实例将超出代码控制的范围,定义private对象来锁定. 3) ...
- dev 域名与 Chrome
前几天在相开发时使用什么的样域名比较好呢? 之前使用到 localhost,但只是本地开发,使用 test.com 感觉又不专业. 后来发现了一些指向 127.0.0.1 的域名,比如 localte ...
- 修改 spawn node.exe" ENOENT at notFoundError问题
Ionic server启动后,出现spawn node.exe" ENOENT at notFoundError ...\node_modules\cross-spawn\lib\enoe ...
- Hive 严格模式与非严格模式
1. hive严格模式 hive提供了一个严格模式,可以防止用户执行那些可能产生意想不到的不好的效果的查询.即某些查询在严格模式下无法执行.通过设置hive.mapred.mode的值为strict, ...