函数积分图
import matplotlib. pyplot as plt
import numpy as np
from matplotlib. pyplot import Polygon
def func ( x) : return - ( x- 2 ) * ( x- 8 ) + 40
x= np. linspace( 0 , 10 )
y= func( x)
ax= plt. subplot( )
plt. plot( x, y, 'r' , linewidth= 2 ) a= 2
b= 9
ax. set_xticks( [ a, b] )
ax. set_yticks( [ ] )
ax. set_xticklabels( [ r'$a$' , r'$b$' ] )
ix= np. linspace( a, b)
iy= func( ix)
ixy= zip ( ix, iy)
verts= [ ( a, 0 ) ] + list ( ixy) + [ ( b, 0 ) ]
poly= Polygon( verts, facecolor= '0.5' , edgecolor= '0.1' )
ax. add_patch( poly) plt. figtext( 0.9 , 0.05 , '$x$' )
plt. figtext( 0.1 , 0.9 , '$y$' )
x_match= ( a+ b) * 0.5 * 0.7
y_match= 35
plt. text( x_match, y_match, r'$\int_a^b(-(x-2)*(x-8)+40dx$' , fontsize= 15 , horizontalalignment= 'center' )
plt. show( )
散点条形图
import matplotlib. pyplot as plt
import numpy as np
plt. style. use( 'ggplot' )
x= np. random. randn( 200 )
y= x+ np. random. randn( 200 ) * 0.5
margin_border= 0.1
width= 0.6
margin_between= 0.02
height= 0.2 left_s= margin_border
bottom_s= margin_border
height_s= width
width_s= widthleft_x= margin_border
bottom_x= margin_border+ width+ margin_between
height_x= height
width_x= widthleft_y= margin_border+ width+ margin_between
bottom_y= margin_border
height_y= width
width_y= heightplt. figure( 1 , figsize= ( 8 , 8 ) )
rect_s= [ left_s, bottom_s, width_s, height_s]
rect_x= [ left_x, bottom_x, width_x, height_x]
rect_y= [ left_y, bottom_y, width_y, height_y] axScatter= plt. axes( rect_s)
axHisX= plt. axes( rect_x)
axHisY= plt. axes( rect_y)
axHisX. set_xticks( [ ] )
axHisY. set_yticks( [ ] )
axScatter. scatter( x, y)
bin_width= 0.25
xymax= np. max ( [ np. max ( np. fabs( x) ) , np. max ( np. fabs( y) ) ] )
lim= int ( xymax/ bin_width+ 1 ) * bin_widthaxScatter. set_xlim( - lim, lim)
axScatter. set_ylim( - lim, lim) bins= np. arange( - lim, lim+ bin_width) axHisX. hist( x, bins= bins)
axHisY. hist( y, bins= bins, orientation= 'horizontal' ) axHisX. set_xlim( axScatter. get_xlim( ) )
axHisY. set_xlim( axScatter. get_ylim( ) ) plt. show( )
球员能力值
import matplotlib. pyplot as plt
import numpy as np
from matplotlib. font_manager import FontPropertiesfont = FontProperties( fname= r"c:\windows\fonts\simsun.ttc" , size= 12 )
plt. style. use( 'ggplot' )
ax1= plt. subplot( 111 , projection= 'polar' )
ability_size= 6
ability_label= [ u'进攻' , u'防守' , u'盘带' , u'速度' , u'体力' , u'射术' , ] player= { 'M' : np. random. randint( size= ability_size, low= 80 , high= 99 ) }
theta= np. linspace( 0 , 2 * np. pi, 6 , endpoint= False )
theta= np. append( theta, theta[ 0 ] ) player[ 'M' ] = np. append( player[ 'M' ] , player[ 'M' ] [ 0 ] )
ax1. plot( theta, player[ 'M' ] , 'r' )
ax1. fill( theta, player[ 'M' ] , 'r' , alpha= 0.3 )
ax1. set_xticks( theta)
ax1. set_xticklabels( ability_label, y= 0.01 , fontproperties= font)
ax1. set_title( u'梅西' , fontproperties= font, color= 'r' , size= 20 )
plt. show( )