使用matplotlib绘制图表

我们先来看什么是Figure和Axes对象。在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个,或者多个Axes对象。每个Axes对象都是一个拥有自己坐标系统的绘图区域。其逻辑关系如下:

以下整个图像是fig对象。我们的绘图中只有一个坐标系区域,也就是ax。此外还有以下对象。(括号中表示对象的基本类型)

Title为标题;

Axis为坐标轴;

Label为坐标轴标注;

Tick为刻度线;

Tick Label为刻度注释。

各个对象之间有下面的对象隶属关系:

(yaxis同样有tick, label和tick label,没有画出)

尽管data是数据绘图的关键部分,也就是数据本身的图形化显示,但是必须和xaxis, yaxis, title一起,才能真正构成一个绘图区域axes。一个单纯的,无法读出刻度的

坐标

坐标是计算机绘图的基础。计算机屏幕是由一个个像素点构成的。想要在屏幕上显示图像,计算机必须告诉屏幕每个像素点上显示什么。所以,最贴近硬件的坐标体系是以像素为单位的坐标体系。我们可以通过具体说明像素位置来标明显示器上的某一点。这叫做显示坐标(display coordinate),以像素为单位。

然而,像素坐标不容易被纳入绘图逻辑。相同的程序,在不同的显示器上就要调整像素值,以保证图像不变形。所以一般情况下,还会有图像坐标和数据坐标。

图像坐标将一张图的左下角视为原点,将图像的x方向和y方向总长度都看做1。x方向的0.2就是指20%的图像在x方向的总长,y方向0.8的长度指80%的y方向总长。(0.5, 0.5)是图像的中点,(1, 1)指图像的右上角。比如下面的程序,我们在使用add_axes时,传递的参数中,前两个元素为axes的左下角在fig的图像坐标上的位置,后两个元素指axes在fig的图像坐标上x方向和y方向的长度。fig的图像坐标称为Figure坐标,储存在为fig.transFigure

线是没有意义的。xaxis, yaxis, title合起来构成了数据的辅助部分(data guide)。

例程1:

#!/usr/bin/env python
import matplotlib.pyplot as plt  

plt.plot([10, 20, 30])
plt.xlabel('tiems')
plt.ylabel('numbers')
plt.show()

例程二:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-  

    import numpy as np
    import matplotlib.pyplot as plt  

    t = np.arange(0.0, 1.01, 0.01)
    s = np.sin(2*2*np.pi*t)  

    plt.fill(t, s*np.exp(-5*t), 'r')
    plt.grid(True)  

    #保存为PDF格式,也可保存为PNG等图形格式
    plt.savefig('D:\\test.pdf')
    plt.show()  

例程三:

import numpy as np
import matplotlib.pyplot as plt

x  = [4,5,5,7,8]
t1 = [1,2,4,4,6]
t2 = [1,2,3,4,5]

plt.figure(1)

plt.plot(t1,'k')
plt.scatter(x,t2,s=2,alpha=1)

plt.show()

例程四:

import numpy as np
import matplotlib.pyplot as plt

x  = [1,2,3,4,5]
t1 = [1,2,3,4,5]
t2 = [1,4,6,8,10]
t3 = [1,8,9,10,20]

plt.figure(1)

#add line
plt.plot(t1,'r')

#add circle
plt.plot(t2,'o')

#add dian
plt.scatter(x,t2,s=2,alpha=1)

plt.xlabel('date(2000+)')
plt.ylabel('house prices')
plt.title('just testing for line and pot')

  • title : 设置图表的标题
  • ylim : 设置Y轴的范围
  • legend : 显示图示最后调用plt.show()显示出我们创建的所有绘图对象。

2 两种常用图类型:Line and scatter plots(使用plot()命令), histogram(使用hist()命令)

2.1 折线图&散点图 Line and scatter plots

2.1.1 折线图 Line plots(关联一组x和y值的直线)

import numpy as np
import pylab as pl
x = [1,2, 3,4, 5]# Make an array of x values
y = [1,4, 9,16, 25]# Make an array of y valuesfor each x value
pl.plot(x, y)# use pylab to plot x and y
pl.show()# show the plot on the screen
   

2.1.2 散点图 Scatter plots

把pl.plot(x, y)改成pl.plot(x, y, ‘o‘)即可,下图的蓝色版本

2.2 美化 Making things look pretty

2.2.1 线条颜色 Changing the line color

红色:把pl.plot(x, y, ‘o‘)改成pl.plot(x, y, ’or’)

参考文献:

http://www.cnblogs.com/vamei/archive/2013/01/30/2879700.html

http://blog.csdn.net/dyx1024/article/details/7296748

http://www.2cto.com/kf/201407/317115.html

http://www.tuicool.com/articles/7zYNZfI

http://www.it165.net/pro/html/201406/15941.html

时间: 2025-02-01 15:43:46

使用matplotlib绘制图表的相关文章

matplotlib:使用matplotlib绘制图表

matplotlib下载及API手册地址:http://sourceforge.net/projects/matplotlib/files/matplotlib/ 数学库numpy下载及API手册地址:http://www.scipy.org/Download 几个绘图的例子[来自API手册] 1.最简单的图: 代码: #!/usr/bin/env python import matplotlib.pyplot as plt plt.plot([10, 20, 30]) plt.xlabel('

python读csv格式文档并用matplotlib绘制图表

import csv from matplotlib import pyplot as plt from datetime import datetime fileName = 'sitka_weather_07-2014.csv' with open(fileName) as f: reader = csv.reader(f) header_row = next(reader) # print(header_row) # for index, column_header in enumerat

用matplotlib绘制漫画风格的图表

自从有了计算机,便很少有人手工绘制图表了.计算机绘制出的图表横平竖直,可以随意使用各种颜色,也完全不用担心画错需要重来的问题. 但有没有一种感觉,看多了工整的图表,变得有些审美疲劳.在各行各业逐渐过渡到计算机绘图的时候,有些人开始怀念起手绘来,只不过用全新的方式——触控板来进行手绘. 1 用Python的maplotlib包绘图 平时喜欢倒腾一些数据,没少画各种图,最常用的是Python的Matplotlib包,简单的几行代码,便可以绘出精美的图来.matplotlib包模仿了MATLAB的绘图

Matplotlib模块 |图表绘制工具

1.Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高效且有较丰富的图表库 https://matplotlib.org/api/pyplot_api.html import numpy as np import pandas as pd import matplotlib.pyplot as plt # 图表窗口1 → plt.show() plt.plot(np.r

Python绘制图表【matplotlib】

matplotlib Matplotlib 是一个 Python 的 2D绘图库 它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 通过 Matplotlib,开发者可以仅需要几行代码, 便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等 官方文档 [官方中文文档]((https://www.matplotlib.org.cn/) 安装 pip install matplotlib 绘制常见图表 折线图 import random import matplotlib.pyplo

[转]用Matplotlib绘制 折线图 散点图 柱状图 圆饼图

Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形. 安装 Matplotlib并不是Python的默认组件,需要额外安装. 官方下载地址 http://matplotlib.org/downloads.html 必须下载与自己的Python版本,操作系统类型对应的安装包.如Windows 64位+Python3.3,应该下载matplotlib-1.3.1.win-amd64-py3.3.exe 第

机器学习--matplotlib绘制各种图标

机器学习三剑客:numpy.pandas.matplotlib NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵. pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 柱状图bar from matplotlib import pyplot as plt import matplotlib # 显示图表,

iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)

1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点.终止点(也称锚点)以及两个相互分离的中间点. 滑动两个中间点,贝塞尔曲线的形状会发生变化. UIBezierPath :对象是CGPathRef数据类型的封装,可以方便的让我们画出 矩形 . 椭圆 或者 直线和曲线的组合形状 初始化方法: + (instancetype)bezierPath; /

广义mandelbrot集,使用python的matplotlib绘制,支持放大缩小

迭代公式的指数,使用的1+5j,这是个复数,所以是广义mandelbrot集,大家可以自行修改指数,得到其他图形.各种库安装不全的,自行想办法,可以在这个网站找到几乎所有的python库 http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib #encoding=utf-8 import numpy as np import pylab as pl import time from matplotlib import cm from math