机器学习-数据可视化神器matplotlib学习之路(三)
之前学习了一些通用的画图方法和技巧,这次就学一下其它各种不同类型的图。好了先从散点图开始,上代码:
from matplotlib import pyplot as plt
import numpy as np n = 1024 #生成1024个点
x = np.random.normal(0, 1, n) #正态分布x坐标,均值0标准差1
y = np.random.normal(0, 1, n) #正态分布y坐标,均值0标准差1
color = np.arctan2(y, x) #这个用于渲染好看的颜色,自己琢磨意义,哈哈
plt.scatter(x, #x坐标
y, #y坐标
s=50, #点的大小
c=color, #颜色
alpha=0.5, #透明度
cmap='magma' #颜色板,看文档或者源码有很多类型,自己可以试试,如summer、winter、pink
)
plt.show()

散点图还是比较简单,关于一些常用设置,如坐标、图例、文字等可以看我之前的学习文章,还有就是很多参数这些看看api或者源码都能搞懂的。
接下来是简单用一下条形图:
from matplotlib import pyplot as plt
import numpy as np n = 12
x = np.arange(12) #12个条形
y1 = np.random.uniform(1, 10, n) #分布1-10的高度
y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度
plt.bar(x, y1)
plt.bar(x, y2) #接下来在条形上下方加上数值
for x0,y0 in zip(x, y1):
plt.text(x0,
y0,
'%.2f' % y0, #保留两位小数
ha='center', #水平对齐方式
va='bottom' #垂直对齐方式
) for x0, y0 in zip(x, y2):
plt.text(x0,
y0,
'%.2f' % y0, # 保留两位小数
ha='center', # 水平对齐方式
va='top' # 垂直对齐方式
)
plt.show()

好了,一个双层的条形图就完成了。其它还有什么饼图、直方图、等高线图等待很多,就不一一写出来了,接下来再弄一弄在一个figure显示多个图吧
其实很简单了,这里要用到subplot(n,m,d)将图分成n行m列,添加地d个格子的图像,接下来偷懒了,就用上面两个例子放一起就好了
from matplotlib import pyplot as plt
import numpy as np plt.figure(num=1, figsize=(12, 6))#设置figure属性,因为要放两张图,这里把宽度弄大点
plt.subplot(1, 2, 1)#1行2列第一个格子ax画图
n = 12
x = np.arange(12) #12个条形
y1 = np.random.uniform(1, 10, n) #分布1-10的高度
y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度
plt.bar(x, y1)
plt.bar(x, y2) #接下来在条形上下方加上数值
for x0,y0 in zip(x, y1):
plt.text(x0,
y0,
'%.2f' % y0, #保留两位小数
ha='center', #水平对齐方式
va='bottom' #垂直对齐方式
) for x0, y0 in zip(x, y2):
plt.text(x0,
y0,
'%.2f' % y0, # 保留两位小数
ha='center', # 水平对齐方式
va='top' # 垂直对齐方式
)
#到这里都是第一个ax格子的图像 plt.subplot(1, 2, 2)#开始在的二个ax画图
n = 1024 #生成1024个点
x = np.random.normal(0, 1, n) #正态分布x坐标,在0-1范围
y = np.random.normal(0, 1, n) #正态分布y坐标,在0-1范围
color = np.arctan2(y, x) #这个用于渲染好看的颜色,自己琢磨意义,哈哈
plt.scatter(x, #x坐标
y, #y坐标
s=50, #点的大小
c=color, #颜色
alpha=0.5, #透明度
cmap='magma' #颜色板,看文档或者源码有很多类型,自己可以试试,如summer、winter、pink
)
plt.show()

plt.figure()里面还有很多属性,比如背景颜色板,x和y轴是否共享坐标等等,自己看api和源码吧。哈哈,今天就到这儿。
机器学习-数据可视化神器matplotlib学习之路(三)的更多相关文章
- 机器学习-数据可视化神器matplotlib学习之路(五)
这次准备做一下pandas在画图中的应用,要做数据分析的话这个更为实用,本次要用到的数据是pthon机器学习库sklearn中一组叫iris花的数据,里面组要有4个特征,分别是萼片长度.萼片宽度.花瓣 ...
- 机器学习-数据可视化神器matplotlib学习之路(二)
之前学习了matplotlib的一些基本画图方法(查看上一节),这次主要是学习在图中加一些文字和其其它有趣的东西. 先来个最简单的图 from matplotlib import pyplot as ...
- 机器学习-数据可视化神器matplotlib学习之路(一)
直接上代码吧,说明写在备注就好了,这次主要学习一下基本的画图方法和常用的图例图标等 from matplotlib import pyplot as plt import numpy as np #这 ...
- 机器学习-数据可视化神器matplotlib学习之路(四)
今天画一下3D图像,首先的另外引用一个包 from mpl_toolkits.mplot3d import Axes3D,接下来画一个球体,首先来看看球体的参数方程吧 (0≤θ≤2π,0≤φ≤π) 然 ...
- Python数据可视化——使用Matplotlib创建散点图
Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...
- 学习之路三十九:新手学习 - Windows API
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...
- 学机器学习,不会数据分析怎么行——数据可视化分析(matplotlib)
前言 前面两篇文章介绍了 python 中两大模块 pandas 和 numpy 的一些基本使用方法,然而,仅仅会处理数据还是不够的,我们需要学会怎么分析,毫无疑问,利用图表对数据进行分析是最容易的, ...
- python 数据可视化(matplotlib)
matpotlib 官网 :https://matplotlib.org/index.html matplotlib 可视化示例:https://matplotlib.org/gallery/inde ...
- 绘图和数据可视化工具包——matplotlib
一.Matplotlib介绍 Matplotlib是一个强大的Python**绘图**和**数据可视化**的工具包. # 安装方法 pip install matplotlib # 引用方法 impo ...
随机推荐
- Scala系统学习(三):Scala基础语法
如果您熟悉Java语言语法和编程,那么学习Scala将会很容易.Scala和Java之间最大的句法差异在于行结束字符的分号(;) 是可选的. 当编写Scala程序时,它可以被定义为通过调用彼此的方法进 ...
- [py]字符串/列表
去除str首尾空格(切片) ## str长度 循环,判断 ### [:i] [i:] 记录位置点 ## 方法1 def trim2(s): s2 = "" start = 0 en ...
- 阿里云安装docker 指定版本
sh docker-install.sh 1.12.6 #ubuntu16.4 测试通过 #!/bin/sh set -e # # This script is meant for quick &am ...
- [LeetCode] 867. Transpose Matrix_Easy
Given a matrix A, return the transpose of A. The transpose of a matrix is the matrix flipped over it ...
- word2vec原理(一) CBOW+Skip-Gram模型基础
word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系.本文的讲解word2vec原理以Githu ...
- java调用存储过程mysql
在java中调用带返回值的存储过程的实现 直接上代码: DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `t ...
- vs调试程序时发现变量、类等程序找不到混乱问题
vs中不能同时打开两个解决方案名称相同的程序,否则会运行时出现混乱,比如变量监测不到,类的属性不全等问题
- 【转】Java中Synchronized的用法
<编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程>一文详细讲述了线程.进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础.本文将接着讲一下Java线程同步中的一 ...
- 数据仓库基础(八)Informatica 小例子
本文转载自:http://www.cnblogs.com/evencao/p/3147843.html 之前看了一段数据库的基础,感觉自己对数据库的基础挺薄弱的.以后再学习其他东西的时候也需要经常能学 ...
- quartz-job实现实时或定时发送短信任务
存放调度器(Job 和 Trigger)信息的xml配置文件: 这是某个指定的要实现的定时任务: <!-- 每天给项目经理发送短信避免短信服务挂了 定时每天08:30执行--> <j ...