您的位置:首页 > 编程语言 > Python开发

Python数据可视化-matplotlib学习1

2018-03-03 10:44 926 查看
介绍:
matplotlib是Python著名的绘图库,提供了一整套和matlib相似的命令API,适合交互式制图,或者,将它作为绘图控件嵌入到GUI应用程序中。
pyplot子库:
该子库提供了类似matlib的绘图API,可以方便的绘制2D图表。
使用过程:
1.导入pyplot子库
import matplotlib.pyplot as plt
2.创建figure对象
plt.figure(figsize=(8,4))
matplotlib.pyplot.
figure
(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)

parametersnum:该figure对象的编号,默认为None,即可以不提供该参数,如果不提供,则在后面的plot函数中直接绘图,
matplotlib会自动创建一个figure对象,并增加matplotlib的编号,如果提供该参数,并且该编号的figure对象存在,
就启用这个绘图对象,如果该对象不存在,那么就创建该对象并启用它。如果提供的是String形式,那么title将被
设置为绘图对象的编号。
figsize:指定绘图对象的宽度和高度,单位为英寸。
dpi:绘图对象的分辨率,即每英寸多少像素,缺省值为80.如果没有提供,缺省值为rc figure.dpi,如下方式查看。
import matplotlib
matplotlib.rcParams["figure.dpi"]
facecolor :
the background color. If not provided, defaults to rc figure.facecolor.
edgecolor :
the border color. If not provided, defaults to rc figure.edgecolor.
frameon : bool, optional, default: True
If False, suppress drawing the figure frame.
FigureClass : class derived from matplotlib.figure.Figure
Optionally use a custom Figure instance.
clear : bool, optional, default: False
If True and the figure already exists, then it is cleared.
3.调用plot函数进行绘图
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)
plt.plot(x,z,"b--",label="$cos(x^2)$")
matplotlib.pyplot.
plot
(*args, **kwargs)args,表示可变长度的参数集,即提供几个值都正确。
plot(x, y) # plot x and y using default line style and color
plot(x, y, 'bo') # plot x and y using blue circle markers
plot(y) # plot y using x as index array 0..N-1
plot(y, 'r+') # ditto, but with red plusses如果x或y是二维的,那么相应的列也会被绘制出来。

上例中的'bo'和'r+'都是样式指定,这是样式指定的一种方式。
样式表如下:

The following format string characters are accepted to controlthe line style or marker:
4000
characterdescription
'-'
solid line style
'--'
dashed line style
'-.'
dash-dot line style
':'
dotted line style
'.'
point marker
','
pixel marker
'o'
circle marker
'v'
triangle_down marker
'^'
triangle_up marker
'<'
triangle_left marker
'>'
triangle_right marker
'1'
tri_down marker
'2'
tri_up marker
'3'
tri_left marker
'4'
tri_right marker
's'
square marker
'p'
pentagon marker
'*'
star marker
'h'
hexagon1 marker
'H'
hexagon2 marker
'+'
plus marker
'x'
x marker
'D'
diamond marker
'd'
thin_diamond marker
'|'
vline marker
'_'
hline marker
The following color abbreviations are supported:
charactercolor
‘b’blue
‘g’green
‘r’red
‘c’cyan
‘m’magenta
‘y’yellow
‘k’black
‘w’white
另一种方式是提供关键字参数,即
plot([1,2,3], [1,2,3], 'go-', label='line 1', linewidth=2)
plot([1,2,3], [1,4,9], 'rs', label='line 2')如果两种方法指定了相同的指标,那么默认取第一种方式。

第三种方式:通过Line2D对象line的set_*方法设置
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x = np.arange(0, 5, 0.1)
>>> line, = plt.plot(x, x*x) # plot返回一个列表,通过line,获取其第一个元素
>>> # 调用Line2D对象的set_*方法设置属性值
>>> line.set_antialiased(False)
The kwargs are
Line2D
properties:
PropertyDescription
agg_filter
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array
alpha
float (0.0 transparent through 1.0 opaque)
animated
bool
antialiased
or aa
[True | False]
clip_box
a
Bbox
instance
clip_on
bool
clip_path
[(
Path
,
Transform
) |
Patch
| None]
color
or c
any matplotlib color
contains
a callable function
dash_capstyle
[‘butt’ | ‘round’ | ‘projecting’]
dash_joinstyle
[‘miter’ | ‘round’ | ‘bevel’]
dashes
sequence of on/off ink in points
drawstyle
[‘default’ | ‘steps’ | ‘steps-pre’ | ‘steps-mid’ | ‘steps-post’]
figure
a
Figure
instance
fillstyle
[‘full’ | ‘left’ | ‘right’ | ‘bottom’ | ‘top’ | ‘none’]
gid
an id string
label
object
linestyle
or ls
[‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) |
'-'
|
'--'
|
'-.'
|
':'
|
'None'
|
' '
|
''
]
linewidth
or lw
float value in points
marker
A valid marker style
markeredgecolor
or mec
any matplotlib color
markeredgewidth
or mew
float value in points
markerfacecolor
or mfc
any matplotlib color
markerfacecoloralt
or mfcalt
any matplotlib color
markersize
or ms
float
markevery
[None | int | length-2 tuple of int | slice | list/array of int | float | length-2 tuple of float]
path_effects
AbstractPathEffect
picker
float distance in points or callable pick function
fn(artist, event)
pickradius
float distance in points
rasterized
bool or None
sketch_params
(scale: float, length: float, randomness: float)
snap
bool or None
solid_capstyle
[‘butt’ | ‘round’ | ‘projecting’]
solid_joinstyle
[‘miter’ | ‘round’ | ‘bevel’]
transform
a
matplotlib.transforms.Transform
instance
url
a url string
visible
bool
xdata
1D array
ydata
1D array
zorder
float
同样,可以通过调用Line2D对象的get_*方法获取对象的属性值。>>> line.get_linewidth()
1.0第四种方式:plt.setp()函数配置多个Line2D对象的颜色和线宽属性
>>> # 同时绘制sin和cos两条曲线,lines是一个有两个Line2D对象的列表
>>> lines = plt.plot(x, np.sin(x), x, np.cos(x)) #
>>> # 调用setp函数同时配置多个Line2D对象的多个属性值
>>> plt.setp(lines, color="r", linewidth=2.0)
同样,我们可以通过plt.getp()函数获取对象的属性。
>>> plt.getp(lines[0], "color") # 返回color属性
'r'
>>> plt.getp(lines[1]) # 输出全部属性
alpha = 1.0
animated = False
antialiased or aa = True
axes = Axes(0.125,0.1;0.775x0.8)
... ...

总结:figure对象是最下面的“画纸”,plot是画,Line2D是画的属性对象,制定其属性可以通过plot也可以通过Line2D。
另外:

matplotlib的整个图表为一个Figure对象,此对象在调用plt.figure函数时返回,我们也可以通过plt.gcf函数获取当前的绘图对象:
>>> f = plt.gcf()
>>> plt.getp(f)
alpha = 1.0
animated = False
...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: