python matplotlib坐标轴设置的方法

在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围、坐标轴刻度大小、坐标轴名称等

在matplotlib中包含了很多函数,用来对这些参数进行设置。

我们可以对坐标轴进行设置,设置坐标轴的范围,设置坐标轴上的文字描述等。

基本用法

例如:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成x轴上的数据:从-3到3,总共有50个点
x = np.linspace(-1, 1, 50)
# 定义一个线性方程
y1 = 2 * x + 1
# 定义一个二次方程
y2 = x ** 2
# 设置x轴的取值范围为:-1到2
plt.xlim(-1, 2)
# 设置y轴的取值范围为:-1到3
plt.ylim(-1, 3)
# 设置x轴的文本,用于描述x轴代表的是什么
plt.xlabel("I am x")
# 设置y轴的文本,用于描述y轴代表的是什么
plt.ylabel("I am y")
plt.plot(x, y2)
# 绘制红色的线宽为1虚线的线条
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
# 显示图表
plt.show()

输出图为:

python matplotlib坐标轴设置的方法

修改坐标轴的刻度

想要修改x轴的刻度,从-1到2,总共5点:

new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)

只要把上述代码放在画图之前,最后画出来的图为:

python matplotlib坐标轴设置的方法

这样x轴上的刻度就被修改成了从-1到2共5个点。

把刻度用文字来表示

# 设置y刻度:用文字来显示刻度
plt.yticks([-2, -1.8, -1, 1.22, 3],
  ['really bad', 'bad', 'normal', 'good', 'really good'])

上面代码的意思就是把y刻度中的数值和文字进行了映射:

-2 => 'really bad'

-1.8 => 'bad'

-1 => 'normal'

1.22 => 'good'

3 => 'really good'

显示图为:

python matplotlib坐标轴设置的方法

修改坐标轴刻度字体

为了能够使刻度上的字体显示得好看些,可以使用:

plt.yticks([-2, -1.8, -1, 1.22, 3],
  [r'$really\ bad$', r'$bad\alpha$', 'normal', r'$good$', 'really good'])

上面用正则文本方式来显示字体,同时还用\alpha来转义显示数学中的alpha字母,图像显示如下:

python matplotlib坐标轴设置的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2017-12-04

Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法

本文实例讲述了Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法.分享给大家供大家参考.具体如下: 看看下面的例子和效果吧 # -*- coding: utf-8 -*- from matplotlib.widgets import MultiCursor from pylab import figure, show, np t = np.arange(0.0, 2.0, 0.01) s1 = np.sin(2*np.pi*t) s2 = np.sin(4*np.pi*t

Android 中两个Activity 之间的传值问题

Android 中两个Activity 之间的传值问题 在Android项目中,有时需要一些全局的静态变量来保存一些数据,这样在关闭赋值界面后,其他的页面还可以调用这些数据. 但是我们知道,在Java中全局静态变量(java中没有全局变量这一个概念,但是java提供了public static关键字来实现一些类似于全局变量的关键字)都是在程序加载时就放人到内存中,它是存储在方法区里的.如果程序不结束,它将一直存在.这是会影响到系统的性能的.那么在android中可不可以不通过这种方式来传递值呢?

Android编程实现两个Activity之间共享数据及互相访问的方法

本文实例讲述了Android编程实现两个Activity之间共享数据及互相访问的方法.分享给大家供大家参考,具体如下: 本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符.数值.成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题,发出来大家讨论一下.本人学习android不久,幼稚的地方希望大家不要见笑 原理:假设有两个Ac

数据库中两张表之间的数据同步增加、删除与更新实现思路

分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加: 如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. 复制代码 代码如下: CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END

Android中两个Activity之间数据传递及返回问题

下面通过一个例子来详细说明 先上代码,再细细分析 MainActivity public class MainActivity extends Activity { private Button mainBtn=null; private final static int REQUEST_CODE=1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInst

ThinkPHP模板中判断volist循环的最后一条记录的验证方法

对于用过smarty做过php开发的朋友来说,应该都知道在smarty模板里面判断foreach循环是否是最后一个可以用$smarty.foreach.name.last来判断循环是否到了最后一条记录,在thinkphp的模板中常见的循环是volist,但是volist的各种属性中并没有直接判断最后一条记录的属性,那么在thinkphp中如何判断呢?下面的代码可以实现ThinkPHP中volist断最后一条记录. 举例代码如下,读者可以自己去体会. <volist name='lists' id

python 如何快速找出两个电子表中数据的差异

最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力. 公司里会有这样的场景:有一张电子表格的内容由两三个部门或者更多的部门用到,这些员工会在维护这些表格中不定期的跟新一些自己部门的数据,时间久了,大家的数据就开始打架了,非常不利于管理.怎样快速找到两个或者多个电子表格中数据的差异呢? 解决办法: 1. Excel自带的方法(有兴趣的自行百度) 2. python 写一个小脚本 #!/usr/bin/env python # -*- coding: utf-8

python实现在windows服务中新建进程的方法

本文实例讲述了python实现在windows服务中新建进程的方法.分享给大家供大家参考.具体实现方法如下: 需要安装的软件:python和pywin32,我这里装的分别是python-2.6.amd64.pywin32-217.win-amd64-py2.6 文件名:dma_ws.py #!python import win32serviceutil import win32service import win32event import os from subprocess import P

Python在图片中添加文字的两种方法

本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.OpenCV中并没有使用自定义字体文件的函数,这不仅意味着我们不能使用自己的字体,而且意味着他无法显示中文字符.这还是非常要命的事情.而且他显示出来的文字位置也不太好控制.比如下面的代码,他想做的仅仅是显示数字3: 代码: #coding=utf-8 import cv2 import numpy as

Python的Flask框架中实现分页功能的教程

Blog Posts的提交 让我们从简单的开始.首页上必须有一张用户提交新的post的表单. 首先我们定义一个单域表单对象(fileapp/forms.py): class PostForm(Form): post = TextField('post', validators = [Required()]) 下面,我们把这个表单添加到template中(fileapp/templates/index.html): <!-- extend base layout --> {% extends &