使用matlibplot.pyplot设置画图的坐标系
今天看了林轩田老师的感知机算法,心血来潮想要做个可视化过程,以便观察更新的过程。
现将学习成果做个记录,下面是画出来的图,这是初始的状态,后面会通过算法找到一条经过原点的直线将两堆数据分割开来。

直线以及两堆数据是随机生成的,下面介绍画出这个图的步骤主要有哪些:
导入需要的工具包,这个没得说,而且是在jupyter notebook中,所有会使用
%matplotlib inlineimport numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
生成数据
# 设置随机种子
np.random.seed(325) # 随机生成o数据
o_data_x = np.random.randint(40, 80, 5)
o_data_y = np.random.randint(20, 80, 5)
o_label = np.array([0,0,0,0,0]) # 随机生成x数据
x_data_x = np.random.randint(10, 50, 5)
x_data_y = np.random.randint(60, 90, 5)
x_label = np.array([1,1,1,1,1]) # 随机生成初始的直线
w1_w2 = np.random.random(2)
t = np.linspace(-100,100, 18)
画图
# 设置画布
plt.figure(figsize=(8, 8)) # 作点
plt.scatter(o_data_x, o_data_y, c='b', marker='o', label='0')
plt.scatter(x_data_x, x_data_y, c='r', marker='x', label='1')
plt.legend() # 作初始线
plt.plot(t, -w1_w2[0]/w1_w2[1]*t) # 获取当前的坐标轴, gca = get current axis
ax = plt.gca() # 设置标题,也可用plt.title()设置
ax.set_title('Inital', fontsize=20, loc='left') # 设置右边框和上边框,隐藏
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none') # 设置x坐标轴为下边框
ax.xaxis.set_ticks_position('bottom')
# 设置y坐标轴为左边框
ax.yaxis.set_ticks_position('left') # 设置x轴, y轴在(0, 0)的位置
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0)) # ax.set_xticks与plt.xticks功能一样,都是自行定义x坐标轴的刻度;y轴同理。在这里使用避免原点出现两个同样的0
ax.set_xticks([-100, -75, -50, -25, 0, 25, 50, 75, 100])
ax.set_yticks([-100, -75, -50, -25, 25, 50, 75, 100])
plt.savefig('output.jpg')
总结
上述画图涉及的知识点包括:
- 画直线图
- 画散点图
- 设置坐标轴的原点、刻度等
使用matlibplot.pyplot设置画图的坐标系的更多相关文章
- matplotlib.pyplot设置画布主题
import matplotlib.pyplot as plt # 定义一个画图函数 def sinplot(flip = 1): x = np.linspace(0,10,100) for i in ...
- Matplotlib.pyplot 把画图保存为图片
在plt.show()之前执行plt.savefig()函数即可. 简单例子: import matplotlib.pyplot as plt x=[1,2,3,4,5] y=[10,5,15,10, ...
- matplotlib:plt.rcParams设置画图的分辨率,大小等信息
主要作用是设置画的图的分辨率,大小等信息 plt.rcParams['figure.figsize'] = (8.0, 4.0) # 设置figure_size尺寸 plt.rcParams['ima ...
- 使用pyplot和seaborn进行画图
pyplot的一些知识 matplotlab中的对象: matplotlib是面向对象的,在画图的时候我们了解一些对象,对我们画图是有帮助的.绘图的对象大致分为三层: backend_bases.Fi ...
- Matplotlib数据可视化(2):三大容器对象与常用设置
上一篇博客中说到,matplotlib中所有画图元素(artist)分为两类:基本型和容器型.容器型元素包括三种:figure.axes.axis.一次画图的必经流程就是先创建好figure实例, ...
- Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)
描述 axes在当前窗口中创建一个包含默认属性坐标系 axes('PropertyName',propertyvalue,...)创建坐标系时,同时指定它的一些属性,没有指定的使用DefaultAxe ...
- python3绘图示例6-2(基于matplotlib,绘图流程介绍及设置等)
#!/usr/bin/env python# -*- coding:utf-8 -*- import os import numpy as npimport matplotlib as mpltfro ...
- 利用matlibplot绘制雷达图
之前在一些数据分析案例中看到用 Go 语言绘制的雷达图,非常的漂亮,就想着用matlibplot.pyplot也照着画一个,遗憾的是matlibplot.pyplot模块中没有直接绘制雷达图的函数,不 ...
- Python:matplotlib.pyplot
翻译总结自:matplotlib.pyplot - Matplotlib 3.4.3 documentation 函数 说明 acorr x的自相关性图 angle_spectrum 角度谱 anno ...
随机推荐
- DXP常用有效的快捷操作记录
1.在PCB中快速选中一个器件 1) M+C+Enter将弹出元件对话框,移动一个元件后,在十字架光标 状态时按[Enter]键 2)M(Move)+M(Move)按下时,鼠标光标变成“+”后,点击 ...
- CentOS下双网卡绑定-bond0
网卡绑定就是多张网卡逻辑上作为一张网卡用.可分为,负载均衡绑定和冗余绑定两种. 加载bonding驱动 #modprobe bonding 1.编辑虚拟网络接口配置文件 [root@test~]# ...
- swift能干什么,不能干什么及相关概念
1.swift 是什么?OpenStackObject Storage (Swift) 是开源的,用来创建可扩展的.冗余的.对象存储(引擎). swift使用标准化的服务器存储 PB 级可用数据.但它 ...
- cxGrid控件过滤筛选后如何获更新筛选后的数据集
cxGrid控件过滤筛选后如何获更新筛选后的数据集 (2015-06-19 12:12:08) 转载▼ 标签: delphi cxgrid筛选数据集 cxgrid过滤 分类: Delphi cxGri ...
- [Leet code 2]Two Sum
1 题目 You are given two linked lists representing two non-negative numbers. The digits are stored in ...
- !!! no internal routing support, rebuild with pcre support !!!
sudo apt-get install libpcre3 libpcre3-dev sudo pip install uwsgi -I --no-cache-dir
- ADB 命令介绍
Android adb shell am 命令介绍 am这个指令是 activity manager的缩写.这个命令可以启动Activity.打开或关闭进程.发送广播等操作. am命令格式如下 adb ...
- Django(视图 CBV、FBV)
day67 参考:http://www.cnblogs.com/liwenzhou/articles/8305104.html CBV和FBV 我们之前写过的都是基于函数的view,就叫FBV.还可以 ...
- Swift5 语言参考(三) 类型
在Swift中,有两种类型:命名类型和复合类型.一个名为类型是当它的定义可以给出一个特定名称的类型.命名类型包括类,结构,枚举和协议.例如,名为的用户定义类的实例MyClass具有该类型MyClass ...
- 如何做好错误处理?(PHP篇)
起因 之前我在封装 PHP 一个类库的时候,如果有遇到错误(例如构造函数传参不合法的话),则直接 die() ,后来发现这种方法很不好,会直接退出程序. 所以我想到给 PHP 上异常捕获的机制了. 错 ...