python 画图例⼦
Python 画图主要⽤到matplotlib 这个库。具体来说是pylab 和pyplot 这两个⼦库。这两个库可以满⾜基本的画图需求,⽽条形图,散点图等特殊图,下⾯再单独具体介绍。
⾸先给出pylab 神器镇⽂:Params.update(params)。这个函数⼏乎可以调节图的⼀切属性,包括但不限于:坐标范围,axes 标签字号⼤⼩,xtick,ytick 标签字号,图线宽,legend 字号等。
⾸先给出⼀个Python3画图的例⼦。
显⽰效果如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
python新手代码画图18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46import  matplotlib.pyplot as plt import  matplotlib.pylab as pylab import  scipy.io import  numpy as np params  = {    'axes.labelsize' :  '35' ,            'xtick.labelsize' : '27' ,    'ytick.labelsize' : '27' ,    'lines.linewidth' : 2  ,    'legend.fontsize' :  '27' ,    'figure.figsize'    :  '12, 9'    # set figure size }Params.update(params)            #set figure parameter #line_styles=['ro-','b^-','gs-','ro--','b^--','gs--']  #set line style            #We give the coordinate date directly to give an example.x1  =  [ - 20 , - 15 , - 10 , - 5 , 0 , 0 , 5 , 10 , 15 , 20 ]y1  =  [ 0 , 0.04 , 0.1 , 0.21 , 0.39 , 0.74 , 0.78 , 0.80 , 0.82 , 0.85 ]y2  =  [ 0 , 0.014 , 0.03 , 0.16 , 0.37 , 0.78 , 0.81 , 0.83 , 0.86 , 0.92 ]y3  =  [ 0 , 0.001 , 0.02 , 0.14 , 0.34 , 0.77 , 0.82 , 0.85 , 0.90 , 0.96 ]y4  =  [ 0 , 0 , 0.02 , 0.12 , 0.32 , 0.77 , 0.83 , 0.87 , 0.93 , 0.98 ]
y5  =  [ 0 , 0 , 0.02 , 0.11 , 0.32 , 0.77 , 0.82 , 0.90 , 0.95 , 1 ]  plt.plot(x1,y1, 'bo-' ,label  = 'm=2, p=10%' ,markersize  = 20 )  # in 'bo-', b is blue, o is O marker, - is solid line and so on plt.plot(x1,y2, 'gv-' ,label  = 'm=4, p=10%' ,markersize  = 20 )plt.plot(x1,y3, 'ys-' ,label  = 'm=6, p=10%' ,markersize  = 20 )plt.plot(x1,y4, 'ch-' ,label  = 'm=8, p=10%' ,markersize  = 20 )plt.plot(x1,y5, 'mD-' ,label  = 'm=10, p=10%' ,markersize  = 20 )  fig1  =  plt.figure( 1 )axes  =  plt.subplot( 111 )  #axes = a()axes.set_yticks([ 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1.0 ]) id( True  )  # add grid  plt.legend(loc  = "lower right" )  #set legend location plt.ylabel( 'Percentage' )    # set ystick label plt.xlabel( 'Difference' )  # set xstck label  plt.savefig( 'D:\\commonNeighbors_CDF_snapshots.eps' ,dpi  =  1000 ,bbox_inches  = 'tight' )plt.show()
代码没什么好说的,这⾥只说⼀下plt.subplot(111)这个函数。
plt.subplot(111)和plt.subplot(1,1,1)是等价的。意思是将区域分成1⾏1列,当前画的是第⼀个图(排序由⾏⾄列)。
plt.subplot(211)意思就是将区域分成2⾏1列,当前画的是第⼀个图(第⼀⾏,第⼀列)。以此类推,只要不超过10,逗号就可省去。
python画条形图。代码如下。
import scipy.io
import numpy as np
import matplotlib.pylab as pylab
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
params={
'axes.labelsize': '35',
'xtick.labelsize':'27',
'ytick.labelsize':'27',
'lines.linewidth':2 ,
'legend.fontsize': '27',
'figure.figsize'  : '24, 9'
}
y1 = [9.79,7.25,7.24,4.78,4.20]
y2 = [5.88,4.55,4.25,3.78,3.92]
y3 = [4.69,4.04,3.84,3.85,4.0]
y4 = [4.45,3.96,3.82,3.80,3.79]
y5 = [3.82,3.89,3.89,3.78,3.77]
ind = np.arange(5)                # the x locations for the groups
width = 0.15
plt.bar(ind,y1,width,color = 'blue',label = 'm=2')
plt.bar(ind+width,y2,width,color = 'g',label = 'm=4') # ind+width adjusts the left start location of the bar. plt.bar(ind+2*width,y3,width,color = 'c',label = 'm=6')
plt.bar(ind+3*width,y4,width,color = 'r',label = 'm=8')
plt.bar(ind+4*width,y5,width,color = 'm',label = 'm=10')
plt.xlabel('Sample percentage')
plt.ylabel('Error rate')
fmt = '%.0f%%'# Format you want the ticks, e.g. '40%'
xticks = mtick.FormatStrFormatter(fmt)
# Set the formatter
axes = a()  # get current axes
axes.yaxis.set_major_formatter(xticks) # set % format to ystick.
plt.legend(loc="upper right")
plt.savefig('D:\\errorRate.eps', format='eps',dpi = 1000,bbox_inches='tight')
plt.show()
结果如下:
画⽹络图,要⽤到networkx这个库,下⾯给出⼀个实例:
结果如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。