额能够一向接纳相关库的功效,而不是弹出一个图纸窗口

在采纳Python做多少解析时,探索数据以及结果显示上图片的运用是必需的。

参考

1
2
3
4
5
6
7
8
import matplotlib.pyplot as plt
labels='frogs','hogs','dogs','logs'
sizes=15,20,45,10
colors='yellowgreen','gold','lightskyblue','lightcoral'
explode=0,0.1,0,0
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)
plt.axis('equal')
plt.show()

无论是你办事在咋样类型上,IPython都是值得推介的。利用ipython --pylab,可以进入PyLab情势,已经导入了matplotlib库与有关软件包(例如Numpy和Scipy),额能够平素动用相关库的机能。

在Python中常见情状下都是用matplotlib模块举行图纸制作。

matplotlib图标正常突显中文

为了在图纸中可知显得粤语和负号等,需要上边一段设置:

1
2
3
import matplotlib.pyplot as plt
plt.rcParams['font.sas-serig']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

 

正文作为读书过程中对matplotlib一些常用知识点的整理,方便寻找。

先理下,matplotlib的布局原理:

matplotlib inline和pylab inline

可以使用ipython --pylab打开ipython命名窗口。

1
2
%matplotlib inline  #notebook模式下
%pylab inline   #ipython模式下

那多少个指令都可以在绘图时,将图片内嵌在互动窗口,而不是弹出一个图纸窗口,可是,有一个缺点:除非将代码一回执行,否则,无法叠加绘图,因为在这二种形式下,是要有plt出现,图片会登时show出来,因此:

推荐在ipython notebook时利用,这样就能很有益的一回编辑完代码,绘图。

这般IPython配置为运用你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac
OS X
native/GTK)。对于多数用户而言,默认的后端就曾经够用了。Pylab情势还会向IPython引入一大堆模块和函数以提供一种更类似MATLAB的界面。

matplotlib API包含有三层:

为品种设置matplotlib参数

在代码执行过程中,有两种艺术改变参数:

  • 使用参数字典(rcParams)
  • 调用matplotlib.rc()命令 通过传播关键字元祖,修改参数

假若不想每回使用matplotlib时都在代码部分举行部署,可以修改matplotlib的公文参数。可以用matplot.get_config()一声令下来找到当前用户的配置文件目录。

配备文件包括以下配置项:

axex: 设置坐标轴边界和外部的水彩、坐标刻度值大小和网格的来得
backend: 设置目标暑促TkAgg和GTKAgg
figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置
font: 字体集(font family)、字体大小和样式设置
grid: 设置网格颜色和线性
legend: 设置图例和里面的文本的体现
line: 设置线条(颜色、线型、宽度等)和标志
patch:
是填充2D上空的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
savefig:
可以对封存的图形进行单独设置。例如,设置渲染的文书的背景为白色。
verbose:
设置matplotlib在实施期间音信输出,如silent、helpful、debug和debug-annoying。
xticks和yticks:
为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。

线条相关属性标记设置

import matplotlib.pyplot as plt
labels='frogs','hogs','dogs','logs'
sizes=15,20,45,10
colors='yellowgreen','gold','lightskyblue','lightcoral'
explode=0,0.1,0,0
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)
plt.axis('equal')
plt.show()

1、backend_bases.FigureCanvas : 图表的绘图领域
2、backend_bases.Renderer : 知道怎么在FigureCanvas上什么样绘图
3、artist.Artist : 知道怎样使用Renderer在FigureCanvas上制图

用来该表线条的特性

线条风格linestyle或ls 描述 线条风格linestyle或ls 描述
‘-‘ 实线 ‘:’ 虚线
‘–’ 破折线 ‘None’,’ ‘,’’ 什么都不画
‘-.’ 点划线  

matplotlib图标正常显示粤语

简简单单的说涵盖六个部分Axis、
Axes、Figure。一个figure(绘图面板)可以分包六个Axes(图表),每个Axes都有协调对此的Axis(坐标轴)。
在matplotlib中,大家决定的是Artists,所以它才是大家要询问的机要。

线条标记

标记maker 描述 标记 描述
‘o’ 圆圈 ‘.’
‘D’ 菱形 ‘s’ 正方形
‘h’ 六边形1 ‘*’ 星号
‘H’ 六边形2 ‘d’ 小菱形
‘_’ 水平线 ‘v’ 一角朝下的三角形
‘8’ 八边形 ‘<’ 一角朝左的三角形
‘p’ 五边形 ‘>’ 一角朝右的三角形
‘,’ 像素 ‘^’ 一角朝上的三角形
‘+’ 加号 ‘\
‘None’,’’,’ ‘ ‘x’ X

为了在图片中可以彰显粤语和负号等,需要下边一段设置:

Artist的特性描述:
ca88亚洲城网站 1

颜色

可以通过调用matplotlib.pyplot.colors()赢得matplotlib辅助的有着颜色。

别名 颜色 别名 颜色
b 蓝色 g 绿色
r 红色 y 黄色
c 青色 k 黑色
m 洋红色 w 白色

假若这二种颜色不够用,还足以经过两种此外方法来定义颜色值:

  • 采用HTML十六进制字符串 color='eeefff' 使用合法的HTML颜色名字(’red’,’chartreuse’等)。
  • 也足以流传一个归一化到[0,1]的RGB元祖。 color=(0.3,0.3,0.4)

成千上万艺术可以介绍颜色参数,如title()。
plt.tilte('Title in a custom color',color='#123456')

import matplotlib.pyplot as plt
plt.rcParams['font.sas-serig']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

普通使用get或set函数对界面举行设置。

背景色

透过向如matplotlib.pyplot.axes()或者matplotlib.pyplot.subplot()如此这般的方法提供一个axisbg参数,可以指定坐标这的背景象。

subplot(111,axisbg=(0.1843,0.3098,0.3098)

matplotlib inline和pylab inline

下面来看下matplotlib的图纸制作的底子内容。

基础

假若您向plot()指令提供了一维的数组或列表,那么matplotlib将默认它是一体系的y值,并机关为您生成x的值。默认的x向量从0初始还要存有和y同样的长度,因而x的多少是[0,1,2,3].

ca88亚洲城网站 2

能够利用ipython --pylab开辟ipython命名窗口。

首先是包载入:

确定坐标范围

  • plt.axis([xmin, xmax, ymin, ymax])
    上边例子里的axis()命令给定了坐标范围。
  • xlim(xmin, xmax)和ylim(ymin, ymax)来调整x,y坐标范围

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    %matplotlib inline
    import numpy as np
    import matplotlib.pyplot as plt
    from pylab import *
    
    x = np.arange(-5.0, 5.0, 0.02)
    y1 = np.sin(x)
    
    plt.figure(1)
    plt.subplot(211)
    plt.plot(x, y1)
    
    plt.subplot(212)
    #设置x轴范围
    xlim(-2.5, 2.5)
    #设置y轴范围
    ylim(-1, 1)
    plt.plot(x, y1)

ca88亚洲城网站 3

%matplotlib inline #notebook模式下
%pylab inline  #ipython模式下
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import pandas as pd

叠加图

用一条指令画多条不同格式的线。

1
2
3
4
5
6
7
8
9
import numpy as np
import matplotlib.pyplot as plt

# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

 

ca88亚洲城网站 4

那五个指令都足以在绘图时,将图片内嵌在交互窗口,而不是弹出一个图形窗口,不过,有一个缺陷:除非将代码两遍进行,否则,不可以叠加绘图,因为在那三种形式下,是要有plt并发,图片会应声show出来,因此:

自家这里除了载入matplotlib中pyplot的模块外,还载入了sklearn中的iris数据集作为示范数据以及pandas作为拍卖多少工具。

plt.figure()

您能够频繁用到figure命令来暴发六个图,其中,图片号按梯次扩充。这里,要专注一个定义当前图和最近坐标。所有绘图操作仅对当下图和眼前坐标有效。平时,你并不需要考虑那些事,下边的这多少个例子为大家演示这一细节。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import matplotlib.pyplot as plt
plt.figure(1)                # 第一张图
plt.subplot(211)             # 第一张图中的第一张子图
plt.plot([1,2,3])
plt.subplot(212)             # 第一张图中的第二张子图
plt.plot([4,5,6])


plt.figure(2)                # 第二张图
plt.plot([4,5,6])            # 默认创建子图subplot(111)

plt.figure(1)                # 切换到figure 1 ; 子图subplot(212)仍旧是当前图
plt.subplot(211)             # 令子图subplot(211)成为figure1的当前图
plt.title('Easy as 1,2,3')   # 添加subplot 211 的标题

 

ca88亚洲城网站 5

figure感觉就是给图像ID,之后方可索引定位到它。

推介在ipython notebook时拔取,这样就能很有利的三遍编辑完代码,绘图。

plt.figure(figsize=(10,5))
#设置图形界面的尺寸

iris=list(load_iris()['data'])
df=pd.DataFrame(iris,columns=['a','b','c','d'])
#载入iris数据集以及数据处理

plt.text()添加文(加文)字表达

  • text()可以在图中的任意地方添加文(Gavin)字,并扶助LaTex语法
  • xlable(), ylable()用于添加x轴和y轴标签
  • title()用于添加图的题材
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

# 数据的直方图
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)


plt.xlabel('Smarts')
plt.ylabel('Probability')
#添加标题
plt.title('Histogram of IQ')
#添加文字
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

ca88亚洲城网站 6
text中前六个参数感觉应该是文本出现的坐标地点。

为品种设置matplotlib参数

采纳plot()方法开展绘图,绘图过程很简短,就五个语句

plt.annotate()文本注释

在数码可视化的进程中,图片中的文字平日被用来诠释图中的一些表征。使用annotate()方法可以很有利地增长此类注释。在运用annotate时,要考虑多少个点的坐标:被诠释的地点xy(x,
y)和插入文本的地方xytext(x, y)。[^1]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import numpy as np
import matplotlib.pyplot as plt

ax = plt.subplot(111)

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)

plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=dict(facecolor='black', shrink=0.05),
            )

plt.ylim(-2,2)
plt.show()

ca88亚洲城网站 7
[^1]:DataHub-Python
数据可视化入门1

在代码执行过程中,有两种艺术改变参数:

plt.plot(df.a,df.b)
plt.show()

plt.xticks()/plt.yticks()设置轴记号

如今是理解干嘛用的了,就是人为设置坐标轴的刻度显示的值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 导入 matplotlib 的所有内容(nympy 可以用 np 这个名字来使用)
from pylab import *

# 创建一个 8 * 6 点(point)的图,并设置分辨率为 80
figure(figsize=(8,6), dpi=80)

# 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plot(X, C, color="blue", linewidth=1.0, linestyle="-")

# 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
plot(X, S, color="r", lw=4.0, linestyle="-")

plt.axis([-4,4,-1.2,1.2])
# 设置轴记号

xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

yticks([-1, 0, +1],
       [r'$-1$', r'$0$', r'$+1$'])
# 在屏幕上显示
show()

ca88亚洲城网站 8
当我们设置记号的时候,大家可以而且安装记号的标签。注意这里运用了
LaTeX。[^2]

[^2]:Matplotlib
教程

  1. 行使参数字典(rcParams)
  2. 调用matplotlib.rc()命令通过传播关键字元祖,修改参数

plot的点子默认结果是折线图,show()方法用于打印结果
ca88亚洲城网站 9

移动脊柱 坐标系

1
2
3
4
5
6
7
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

以此地点实在没看懂,囧,未来再说吧,感觉就是移动了坐标轴的职务。

如果不想每一次使用matplotlib时都在代码部分开展布局,能够修改matplotlib的公文参数。可以用matplot.get_config()命令来找到当前用户的配备文件目录。

数据假设不是连续性的,折线图展现是一种很不好的结果。
为此接下去很重点的是了解一下plot()方法都有什么样参数。

plt.legend()添加图例

1
2
3
4
plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine")
plot(X, S, color="red",  linewidth=2.5, linestyle="-", label="sine")

legend(loc='upper left')

ca88亚洲城网站 10

布局文件包括以下配置项:

线条类型:
ca88亚洲城网站 11

matplotlib.pyplot

使用plt.style.use('ggplot')指令,可以作出ggplot风格的图片。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Import necessary packages
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('ggplot')
from sklearn import datasets
from sklearn import linear_model
import numpy as np
# Load data
boston = datasets.load_boston()
yb = boston.target.reshape(-1, 1)
Xb = boston['data'][:,5].reshape(-1, 1)
# Plot data
plt.scatter(Xb,yb)
plt.ylabel('value of house /1000 ($)')
plt.xlabel('number of rooms')
# Create linear regression object
regr = linear_model.LinearRegression()
# Train the model using the training sets
regr.fit( Xb, yb)
# Plot outputs
plt.scatter(Xb, yb,  color='black')
plt.plot(Xb, regr.predict(Xb), color='blue',
         linewidth=3)
plt.show()

ca88亚洲城网站 12

axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显得
backend: 设置目的暑促TkAgg和GTKAgg
figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置
font: 字体集(font family)、字体大小和体制设置
grid: 设置网格颜色和线性
legend: 设置图例和内部的公文的呈现
line: 设置线条(颜色、线型、宽度等)和标志
patch:
是填写2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
savefig:
可以对封存的图形进行单独设置。例如,设置渲染的文书的背景为白色。
verbose:
设置matplotlib在举办期间音讯输出,如silent、helpful、debug和debug-annoying。
xticks和yticks:
为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。

标志类型:
ca88亚洲城网站 13

给特殊点做注明

好啊,又是注释,两个例子参考一下!

咱俩希望在 2π/32π/3
的职位给两条函数曲线加上一个阐明。首先,大家在相应的函数图像地点上画一个点;然后,向横轴引一条垂线,以虚线标记;最终,写上标签。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
t = 2*np.pi/3
# 作一条垂直于x轴的线段,由数学知识可知,横坐标一致的两个点就在垂直于坐标轴的直线上了。这两个点是起始点。
plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
scatter([t,],[np.cos(t),], 50, color ='blue')

annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
         xy=(t, np.sin(t)), xycoords='data',
         xytext=(+10, +30), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
scatter([t,],[np.sin(t),], 50, color ='red')

annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
         xy=(t, np.cos(t)), xycoords='data',
         xytext=(-90, -50), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

 

ca88亚洲城网站 14

线条相关属性标记设置

颜色类型:
ca88亚洲城网站 15

plt.subplot()

plt.subplot(2,3,1)代表把图标分割成2*3的网格。也可以简写plt.subplot(231)。其中,首个参数是行数,第二个参数是列数,第六个参数表示图形的标号。

用来该表线条的特性

据悉上述的情节,我们修改下图形展示

plt.axes()

咱俩先来看什么是Figure和Axes对象。在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以分包一个,或者三个Axes对象。每个Axes对象都是一个兼有自己坐标体系的绘图区域。其逻辑关系如下^3):
ca88亚洲城网站 16

plt.axes-官方文档

  • axes() by itself creates a default full subplot(111) window axis.
  • axes(rect, axisbg=’w’) where rect = [left, bottom, width, height]
    in normalized (0, 1) units. axisbg is the background color for the
    axis, default white.
  • axes(h) where h is an axes instance makes h the current axis. An
    Axes instance is returned.

    rect=[左, 下, 宽, 高]
    规定的矩形区域,rect矩形简写,这里的数值都是以figure大小为比例,因此,如果要两个axes并排展现,那么axes[2]的左=axes[1].左+axes[1].宽,这样axes[2]才不会和axes[1]重叠。

show code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
http://matplotlib.org/examples/pylab_examples/axes_demo.html

import matplotlib.pyplot as plt
import numpy as np

# create some data to use for the plot
dt = 0.001
t = np.arange(0.0, 10.0, dt)
r = np.exp(-t[:1000]/0.05)               # impulse response
x = np.random.randn(len(t))
s = np.convolve(x, r)[:len(x)]*dt  # colored noise

# the main axes is subplot(111) by default
plt.plot(t, s)
plt.axis([0, 1, 1.1*np.amin(s), 2*np.amax(s)])
plt.xlabel('time (s)')
plt.ylabel('current (nA)')
plt.title('Gaussian colored noise')

# this is an inset axes over the main axes
a = plt.axes([.65, .6, .2, .2], axisbg='y')
n, bins, patches = plt.hist(s, 400, normed=1)
plt.title('Probability')
plt.xticks([])
plt.yticks([])

# this is another inset axes over the main axes
a = plt.axes([0.2, 0.6, .2, .2], axisbg='y')
plt.plot(t[:len(r)], r)
plt.title('Impulse response')
plt.xlim(0, 0.2)
plt.xticks([])
plt.yticks([])

plt.show()

 

ca88亚洲城网站 17

[^3]:绘制:
matplotlib大旨剖析

线条风格linestyle或ls 描述 线条风格linestyle或ls 描述
‘-‘ 实线 ‘:’ 虚线
‘–’ 破折线 ‘None’,’ ‘,” 什么都不画
‘-.’ 点划线
plt.plot(df.a,df.b,'b.')
plt.show()    

pyplot.pie参数

线条标记

ca88亚洲城网站 18

colors颜色

找出matpltlib.pyplot.plot中的colors能够取哪些值?

打印颜色值和呼应的RGB值。

  • plt.axis('equal')防止比例裁减为椭圆
标记maker 描述 标记 描述
‘o’ 圆圈 ‘.’
‘D’ 菱形 ‘s’ 正方形
‘h’ 六边形1 ‘*’ 星号
‘H’ 六边形2 ‘d’ 小菱形
‘_’ 水平线 ‘v’ 一角朝下的三角形
‘8′ 八边形 ‘<‘ 一角朝左的三角形
‘p’ 五边形 ‘>’ 一角朝右的三角形
‘,’ 像素 ‘^’ 一角朝上的三角形
‘+’ 加号 ‘\
‘None’,”,’ ‘ ‘x’ X

结果呈现,青色散点图,效果好多了。
摸底了骨干画图实现,matplotlab 画图很多地点和R中的ggplot2
有很高的相似度,它们都是面向对象画图。

autopct

  • How do I use matplotlib
    autopct?

    1
    autopct enables you to display the percent value using Python string formatting. For example, if autopct='%.2f', then for each pie wedge, the format string is '%.2f' and the numerical percent value for that wedge is pct, so the wedge label is set to the string '%.2f'%pct.

颜色

下边来看下标签和坐标轴设置

可以透过调用matplotlib.pyplot.colors()赢得matplotlib辅助的具有颜色。

调整坐标轴范围可以用五个函数axis([xmin, xmax, ymin, ymax])
或者xlim(xmin, xmax)和ylim(ymin, ymax)
其间xmin和ymin 代表在分级坐标轴的矮小值,相反xmax和ymax
代表在分别坐标轴的最大值。

别名 颜色 别名 颜色
b 蓝色 g 绿色
r 红色 y 黄色
c 青色 k 黑色
m 洋红色 w 白色

要么用地方的例证,看下代码实现。

假定这二种颜色不够用,还可以够由此两种此外办法来定义颜色值:

plt.axis([0,20,0,10])

plt.xlim(0,20)
plt.ylim(0,10)
  1. 使用HTML十六进制字符串color='eeefff'利用合法的HTML颜色名字(’red’,’chartreuse’等)。
  2. 也足以流传一个归一化到[0,1]的RGB元祖。color=(0.3,0.3,0.4)

两段代码的贯彻效益是均等的:
ca88亚洲城网站 19

多多方法能够介绍颜色参数,如title()。

在matplotlab中还提供了一个pylab模块,也有axis、xlim和ylim的函数可以兑现类似的听从。

plt.tilte('Title in a custom color',color='#123456')

随即来看下标题的落实。

背景色

在matplotlib中,主标题使用title函数,x轴和y轴标题用xlabel和ylabel

透过向如matplotlib.pyplot.axes()或者matplotlib.pyplot.subplot()这么的点子提供一个axisbg参数,可以指定坐标这的背景象。

plt.title('iris figure')
plt.xlabel('x axis')
plt.ylabel('y axis')
subplot(111,axisbg=(0.1843,0.3098,0.3098)

贯彻效益如下:
ca88亚洲城网站 20

基础

一如既往可以用pylab模块相同函数实现类似功效。

万一你向plot()指令提供了一维的数组或列表,那么matplotlib将默认它是一密密麻麻的y值,并活动为你生成x的值。默认的x向量从0先导还要具有和y同样的长短,由此x的数码是[0,1,2,3].

继之,来精晓下哪些在一个图中实现多图、多子图以及在一个图中贯彻四个不等的线条或形状。

ca88亚洲城网站 21

制图五个图用figure函数,绘制子图用subplot函数,多一些则向来在plot中叠加就足以了。

规定坐标范围plt.axis([xmin, xmax, ymin, ymax])

首先,看下figure实现

下面例子里的axis()命令给定了坐标范围。

plt.figure(1)
plt.figure(figsize=(10,5))
plt.plot(df.a,df.b,'b.')

plt.figure(2)
plt.figure(figsize=(10,5))
plt.plot(df.c,df.d,'g.')

plt.show()

xlim(xmin, xmax)和ylim(ymin, ymax)来调整x,y坐标范围

落实效益如下

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from pylab import *

x = np.arange(-5.0, 5.0, 0.02)
y1 = np.sin(x)

plt.figure(1)
plt.subplot(211)
plt.plot(x, y1)

plt.subplot(212)
#设置x轴范围
xlim(-2.5, 2.5)
#设置y轴范围
ylim(-1, 1)
plt.plot(x, y1)

figure(1)实现效益:
ca88亚洲城网站 22

ca88亚洲城网站 23

figure(2)实现效益:
ca88亚洲城网站 24

叠加图

与此同时每个图中的参数需要在独家的figure函数下进展安装。

用一条指令画多条不同格式的线。

下边来询问一下图subplot的落实。

import numpy as np
import matplotlib.pyplot as plt

# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

subplot(numRows, numCols, plotNum)

ca88亚洲城网站 25

图片的全部绘图区域被分为numRows行和numCols列,plotNum参数指定创设的Axes对象所在的区域。

plt.figure()

比如说numRows = 2,numCols =
1,就象征整个图区域有两行一列,每一行放一个图。
plotnum=1表示某一幅图放要放在第1行第1列,plotnum=1表示某一幅图放要放在第2行第1列。

你可以频繁行使figure命令来发生六个图,其中,图片号按梯次扩大。这里,要小心一个定义当前图和当下坐标。所有绘图操作仅对眼前图和脚下坐标有效。经常,你并不需要考虑那些事,下面的这些例子为我们演示这一细节。

plt.subplot(211)
plt.plot(df.a,df.b,'b.')

plt.subplot(212)
plt.plot(df.c,df.d,'g.')
import matplotlib.pyplot as plt
plt.figure(1)        # 第一张图
plt.subplot(211)       # 第一张图中的第一张子图
plt.plot([1,2,3])
plt.subplot(212)       # 第一张图中的第二张子图
plt.plot([4,5,6])


plt.figure(2)        # 第二张图
plt.plot([4,5,6])      # 默认创建子图subplot(111)

plt.figure(1)        # 切换到figure 1 ; 子图subplot(212)仍旧是当前图
plt.subplot(211)       # 令子图subplot(211)成为figure1的当前图
plt.title('Easy as 1,2,3')  # 添加subplot 211 的标题

彰显效果如下:
ca88亚洲城网站 26

ca88亚洲城网站 27

subplot中还有另外参数,可以安装总体图的功力,比如axisbg可以为每个子图设置不同的背景象等。

figure感觉就是给图像ID,之后可以索引定位到它。

接着来看下在同等图中画六个部分的兑现。

plt.text()添加文字表达

有二种方法得以兑现,第一是在一个plot函数中三遍性添加两个参数,第二是分成三个plot函数。

text()可以在图中的任意地点添加文(加文)字,并扶助LaTex语法

#第一种方式
plt.plot(df.a,df.b,'b.',df.c,df.d,'g.')

#第二种方式
plt.plot(df.a,df.b,'b.')
plt.plot(df.c,df.d,'g.')

xlable(), ylable()用于添加x轴和y轴标签

五个代码都能兑现如下效果图:
ca88亚洲城网站 28

title()用于添加图的问题

随着,继续刺探图例的装置。

import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

# 数据的直方图
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)


plt.xlabel('Smarts')
plt.ylabel('Probability')
#添加标题
plt.title('Histogram of IQ')
#添加文字
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

图例设置使用legend函数

ca88亚洲城网站 29

此地我们得以取个巧,在美术的时候平昔设置标签作为图例的标签,然后通过loc参数设置图例地点,也得以用0-10的平头表示。
再有更扑朔迷离的参数,可以参考官网函数详解。

text中前两个参数感觉应该是文件出现的坐标地点。

plt.plot(df.a,df.b,'b.',label='blue')
plt.plot(df.c,df.d,'g.',label='green')
plt.legend(loc='upper left')

plt.annotate()文本注释

展现效果如下:
ca88亚洲城网站 30

在数额可视化的经过中,图片中的文字平日被用来诠释图中的一些特性。使用annotate()方法可以很方便地加上此类注释。在利用annotate时,要考虑多少个点的坐标:被诠释的地点xy(x,
y)和插入文本的地点xytext(x, y)。[^1]

俺们还足以对图纸举行文本标注。

import numpy as np
import matplotlib.pyplot as plt

ax = plt.subplot(111)

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)

plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
      arrowprops=dict(facecolor='black', shrink=0.05),
      )

plt.ylim(-2,2)
plt.show()

图形标注可以利用函数text,例如text(1,2,’this is a text’,color=’red’)
,其中1,2意味着文本在图中的地方,‘this is a
text’是文件内容,其他可以设置字体颜色等。

ca88亚洲城网站 31

plt.plot(df.a,df.b,'b.',label='blue')
plt.plot(df.c,df.d,'g.',label='green')

plt.text(1,2,'this is a text',color='red')

plt.xticks()/plt.yticks()设置轴记号

展现效果如下:
ca88亚洲城网站 32

后天是清楚干嘛用的了,就是人造设置坐标轴的刻度展现的值。

其余还有一种更周到的文本标注格局,用annotate函数
实现,可以用箭头指向文字所标注的职位。

# 导入 matplotlib 的所有内容(nympy 可以用 np 这个名字来使用)
from pylab import *

# 创建一个 8 * 6 点(point)的图,并设置分辨率为 80
figure(figsize=(8,6), dpi=80)

# 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plot(X, C, color="blue", linewidth=1.0, linestyle="-")

# 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
plot(X, S, color="r", lw=4.0, linestyle="-")

plt.axis([-4,4,-1.2,1.2])
# 设置轴记号

xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
    [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

yticks([-1, 0, +1],
    [r'$-1$', r'$0$', r'$+1$'])
# 在屏幕上显示
show()

诸如以下代码:

ca88亚洲城网站 33

plt.plot(df.a,df.b,'b.',label='blue')
plt.plot(df.c,df.d,'g.',label='green')
plt.annotate('this is text', xy=(5, 4), xytext=(3, 4),
        arrowprops=dict(facecolor='black', shrink=0.01))

当我们设置记号的时候,我们可以而且安装记号的标签。注意这里运用了
LaTeX。[^2]

展示效果如下:
ca88亚洲城网站 34

举手投足脊柱 坐标系

内部xy为要本着的岗位,xytext为文本标注地点,arrowprops设置箭头情势。

ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

接下去继续探听,坐标轴的刻度设置,可以实现自定义刻度地方以及各种刻度的称谓,

其一地点实在没看懂,囧,未来再说吧,感觉就是移动了坐标轴的职务。

行使函数xticks和yticks。

plt.legend()添加图例

譬如自己把下边图的刻度用以下代码表示后。

plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine")
plot(X, S, color="red", linewidth=2.5, linestyle="-", label="sine")

legend(loc='upper left')
plt.plot(df.a,df.b,'b.',label='blue')
plt.plot(df.c,df.d,'g.',label='green')

plt.xticks([1,3,5,7],['a','b','c','d'])
plt.yticks([1,3,5],['x','y','z'])

ca88亚洲城网站 35

结果如下:
ca88亚洲城网站 36

matplotlib.pyplot

这里我们的刻度更改意义不大,而在可视化过程中有时我们需要对两样的归类变量设置坐标轴时这三个函数就派上用场了。

使用plt.style.use('ggplot')命令,可以作出ggplot风格的图片。

综上说述,在美术方面R的ggplot相当强大,在matplotlib中也能采取ggplot画图风格。

# Import necessary packages
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('ggplot')
from sklearn import datasets
from sklearn import linear_model
import numpy as np
# Load data
boston = datasets.load_boston()
yb = boston.target.reshape(-1, 1)
Xb = boston['data'][:,5].reshape(-1, 1)
# Plot data
plt.scatter(Xb,yb)
plt.ylabel('value of house /1000 ($)')
plt.xlabel('number of rooms')
# Create linear regression object
regr = linear_model.LinearRegression()
# Train the model using the training sets
regr.fit( Xb, yb)
# Plot outputs
plt.scatter(Xb, yb, color='black')
plt.plot(Xb, regr.predict(Xb), color='blue',
     linewidth=3)
plt.show()
plt.style.use('ggplot')
plt.plot(df.a,df.b,'b.',label='blue')
plt.plot(df.c,df.d,'g.',label='green')

ca88亚洲城网站 37

效用展现如下:
ca88亚洲城网站 38

给特殊点做注脚

理所当然即便急需更彻底的ggplot画图,在python中下载ggplot模块也能兑现。

好吧,又是注释,多少个例证参考一下!

最终图画好了要把图纸保存。

我们希望在 2π/32π/3
的地点给两条函数曲线加上一个诠释。首先,咱们在相应的函数图像位置上画一个点;然后,向横轴引一条垂线,以虚线标记;最终,写上标签。

savefig('iris.png', dpi = 75)
t = 2*np.pi/3
# 作一条垂直于x轴的线段,由数学知识可知,横坐标一致的两个点就在垂直于坐标轴的直线上了。这两个点是起始点。
plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
scatter([t,],[np.cos(t),], 50, color ='blue')

annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
     xy=(t, np.sin(t)), xycoords='data',
     xytext=(+10, +30), textcoords='offset points', fontsize=16,
     arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
scatter([t,],[np.sin(t),], 50, color ='red')

annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
     xy=(t, np.cos(t)), xycoords='data',
     xytext=(-90, -50), textcoords='offset points', fontsize=16,
     arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

当然matplotlib还有过多更细致的效率,需要在实质上工作中去熟习和动用。

ca88亚洲城网站 39

plt.subplot()

plt.subplot(2,3,1)意味着把图标分割成2*3的网格。也得以简写plt.subplot(231)。其中,第一个参数是行数,第二个参数是列数,第四个参数表示图形的标号。

plt.axes()

ca88亚洲城网站,咱们先来看如何是Figure和Axes对象。在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以分包一个,或者两个Axes对象。每个Axes对象都是一个富有和谐坐标系列的绘图区域。其逻辑关系如下:

ca88亚洲城网站 40

plt.axes-官方文档

  1. axes() by itself creates a default full subplot(111) window axis.
  2. axes(rect, axisbg=’w’) where rect = [left, bottom, width, height]
    in normalized (0, 1) units. axisbg is the background color for the
    axis, default white.
  3. axes(h) where h is an axes instance makes h the current axis. An
    Axes instance is returned.

rect=[左, 下, 宽, 高]
规定的矩形区域,rect矩形简写,这里的数值都是以figure大小为比例,由此,尽管要多个axes并排显示,那么axes[2]的左=axes[1].左+axes[1].宽,这样axes[2]才不会和axes[1]重叠。

show code:

import matplotlib.pyplot as plt
import numpy as np

# create some data to use for the plot
dt = 0.001
t = np.arange(0.0, 10.0, dt)
r = np.exp(-t[:1000]/0.05)        # impulse response
x = np.random.randn(len(t))
s = np.convolve(x, r)[:len(x)]*dt # colored noise

# the main axes is subplot(111) by default
plt.plot(t, s)
plt.axis([0, 1, 1.1*np.amin(s), 2*np.amax(s)])
plt.xlabel('time (s)')
plt.ylabel('current (nA)')
plt.title('Gaussian colored noise')

# this is an inset axes over the main axes
a = plt.axes([.65, .6, .2, .2], axisbg='y')
n, bins, patches = plt.hist(s, 400, normed=1)
plt.title('Probability')
plt.xticks([])
plt.yticks([])

# this is another inset axes over the main axes
a = plt.axes([0.2, 0.6, .2, .2], axisbg='y')
plt.plot(t[:len(r)], r)
plt.title('Impulse response')
plt.xlim(0, 0.2)
plt.xticks([])
plt.yticks([])

plt.show()

ca88亚洲城网站 41

pyplot.pie参数

matplotlib.pyplot.pie

colors颜色

找出matpltlib.pyplot.plot中的colors可以取哪些值?

  1. so-Named colors in
    matplotlib
  2. matplotlib学习之设置线条颜色、形状 
for name,hex in matplotlib.colors.cnames.iteritems():
  print name,hex

打印颜色值和相应的RGB值。

plt.axis('equal')避免比例裁减为椭圆

autopct

How do I use matplotlib autopct?

autopct enables you to display the percent value using Python string
formatting. For example, if autopct=’%.2f’, then for each pie wedge,
the format string is ‘%.2f’ and the numerical percent value for that
wedge is pct, so the wedge label is set to the string ‘%.2f’%pct.
 

如上就是本文的全体内容,希望对大家的就学抱有帮忙,也希望我们多多协理脚本之家。

您可能感兴趣的著作:

相关文章