Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
pythonÖÐÀûÓÃmatplotlib»æÍ¼¿ÉÊÓ»¯ÖªÊ¶¹éÄÉ
 
×÷Õߣº fighter324
  1982  次浏览      27
 2020-3-17
 
±à¼­ÍƼö:
±¾ÎĽ²ÁËͳ¼Æ×÷ͼº¯Êý£¬ÎªÏîÄ¿ÉèÖÃmatplotlib²ÎÊý£¬ÏßÌõÏà¹ØÊôÐÔ±ê¼ÇÉèÖã¬ÑÕÉ«ÉèÖã¬ÐÞ¸Ä×ø±ê·¶Î§£¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚcnblogs£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­£¬ÍƼö¡£

£¨1£©matplotlibͼ±êÕý³£ÏÔʾÖÐÎÄ

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['simhei'] #ÓÃÓÚÕý³£ÏÔʾÖÐÎıêÇ©

plt.rcParams['axes.unicode_minus']=False #ÓÃÓÚÕý³£ÏÔʾ¸ººÅ

£¨2£©Í³¼Æ×÷ͼº¯Êý£º

plt.plot()»æÖÆÏßÐÔ¶þάͼ£¬ÕÛÏßͼ

×¢Ò⣺Èç¹ûÏòplot()Ö¸ÁîÌṩÁËһάµÄÊý×é»òÕßÁÐ±í£¬Ôòmatplotlib½«Ä¬ÈÏËüÊÇһϵÁеÄyÖµ£¬²¢ÇÒ×Ô¶¯ÎªÆäÉú³ÉxµÄÖµ¡£Ä¬ÈϵÄxÏòÁ¿´Ó0¿ªÊ¼²¢ÇÒ¾ßÓкÍyͬÑùµÄ³¤¶È¡£

plt.bar() »æÖÆÌõÐÎͼ

plt.scatter() »æÖÆÉ¢µãͼ

plt.hist() »æÖƶþάÌõÐÎÖ±·½Í¼£¬ÏÔʾÊý¾ÝµÄ·ÖÅäÇé¿ö

plt.pie() »æÖƱýͼ

plt.boxplot() »æÖÆÏäÐÎͼ

£¨3£©ÎªÏîÄ¿ÉèÖÃmatplotlib²ÎÊý

ÔÚ´úÂëÖ´Ðйý³ÌÖУ¬ÓÐÁ½ÖÖ·½Ê½¿ÉÒÔ¸ü¸Ä²ÎÊý£º

ʹÓòÎÊý×ֵ䣨rcParams£©

µ÷ÓÃmatplotlib.rc()ÃüÁͨ¹ý´«Èë¹Ø¼ü×ÖÔª×飬Ð޸IJÎÊý

Èç¹û²»Ïëÿ´ÎʹÓÃmatplotlibʱ¶¼ÔÚ´úÂ벿·Ö½øÐÐÅäÖ㬿ÉÒÔÐÞ¸ÄmatplotlibµÄÎļþ²ÎÊý¡£¿ÉÒÔÓÃmatplot.get_config()ÃüÁîÀ´ÕÒµ½µ±Ç°Óû§µÄÅäÖÃÎļþĿ¼¡£

ÅäÖÃÎļþ°üÀ¨ÒÔÏÂÅäÖÃÏ

figure: ¿ØÖÆdpi¡¢±ß½çÑÕÉ«¡¢Í¼ÐδóС¡¢ºÍ×ÓÇø( subplot)ÉèÖÃ

font: ×ÖÌ弯£¨font family£©¡¢×ÖÌå´óСºÍÑùʽÉèÖÃ

grid: ÉèÖÃÍø¸ñÑÕÉ«ºÍÏßÐÔ

legend: ÉèÖÃͼÀýºÍÆäÖеÄÎı¾µÄÏÔʾ

line: ÉèÖÃÏßÌõ£¨ÑÕÉ«¡¢ÏßÐÍ¡¢¿í¶ÈµÈ£©ºÍ±ê¼Ç

xticksºÍyticks: Ϊx,yÖáµÄÖ÷¿Ì¶ÈºÍ´Î¿Ì¶ÈÉèÖÃÑÕÉ«¡¢´óС¡¢·½Ïò£¬ÒÔ¼°±êÇ©´óС¡£

axex: ÉèÖÃ×ø±êÖá±ß½çºÍ±íÃæµÄÑÕÉ«¡¢×ø±ê¿Ì¶ÈÖµ´óСºÍÍø¸ñµÄÏÔʾ

backend: ÉèÖÃÄ¿±êÊî´ÙTkAggºÍGTKAgg

patch: ÊÇÌî³ä2D¿Õ¼äµÄͼÐζÔÏó£¬Èç¶à±ßÐκÍÔ²¡£¿ØÖÆÏß¿í¡¢ÑÕÉ«ºÍ¿¹¾â³ÝÉèÖõȡ£

savefig: ¿ÉÒÔ¶Ô±£´æµÄͼÐνøÐе¥¶ÀÉèÖá£ÀýÈ磬ÉèÖÃäÖȾµÄÎļþµÄ±³¾°Îª°×É«¡£

verbose: ÉèÖÃmatplotlibÔÚÖ´ÐÐÆÚ¼äÐÅÏ¢Êä³ö£¬Èçsilent¡¢helpful¡¢debugºÍdebug-annoying

£¨4£©ÏßÌõÏà¹ØÊôÐÔ±ê¼ÇÉèÖÃ

ÏßÌõÐÎ×´ÉèÖ㺠linestyle

marker£º¶Ô×ø±êµã±ê¼Ç£¨ÏßÌõ±ê¼Ç£©

£¨5£©ÑÕÉ«ÉèÖÃ

µ÷ÓÃmatplotlib.pyplot.colors()¿ÉÒԵõ½matplotlibÖ§³ÖµÄËùÓÐÑÕÉ«¡£

ÆäÖУ¬k±íʾºÚÉ«¡¢m±íʾÑóºìÉ«¡¢c±íʾÇàÉ«¡¢w±íʾ°×É«¡£

±³¾°É«£ºmatplotlib.pyplot.axes() »òÕß matplotlib.pyplot.subplot()Ìṩһ¸öaxisbg²ÎÊý£¬¿ÉÒÔÖ¸¶¨×ø±êÖеÄÑÕÉ«¡£

£¨6£©ÐÞ¸Ä×ø±ê·¶Î§

ĬÈÏÇé¿öÏ£¬×ø±êÖáµÄ×î´óÖµºÍ×îСֵÓëÊäÈëÊý¾ÝµÄ×îС¡¢×î´óÖµÒ»Ö¡£

plt.axis(xmin,xmax,ymin,ymax) ¸ø¶¨ÁË×ø±ê·¶Î§

xlim(xmin,xmax)ºÍylim(ymin,ymax)À´µ÷Õûx,yµÄ×ø±ê·¶Î§

£¨7£©ÉèÖÃÖá±ê¼Çplt.xticks()/plt.yticks()£ºÈËΪÉèÖÃ×ø±êÖáµÄ¿Ì¶ÈÏÔʾµÄÖµ

ʵÀý£º

import matplotlib.pyplot as plt

import numpy as np

plt.figure(figsize=(8,6), dpi=80) # ´´½¨Ò»¸öÐ嵀 1 * 1 µÄ×Óͼ£¬½ÓÏÂÀ´µÄͼÑù»æÖÆÔÚÆäÖÐµÄµÚ 1 ¿é£¨Ò²ÊÇΨһµÄÒ»¿é£©

plt.subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)

C,S = np.cos(X), np.sin(X)

plt.plot(X, C, color="blue", linewidth=1.0, linestyle="-") # »æÖÆÓàÏÒÇúÏߣ¬Ê¹ÓÃÀ¶É«µÄ¡¢Á¬ÐøµÄ¡¢¿í¶ÈΪ 1 £¨ÏñËØ£©µÄÏßÌõ

plt.plot(X, S, color="r", lw=4.0, linestyle="-") # »æÖÆÕýÏÒÇúÏߣ¬Ê¹ÓÃÂÌÉ«µÄ¡¢Á¬ÐøµÄ¡¢¿í¶ÈΪ 1 £¨ÏñËØ£©µÄÏßÌõ

plt.axis([-4,4,-1.2,1.2]) #¸ø¶¨×ø±êÖáµÄ·¶Î§

# ÉèÖÃÖá¼ÇºÅ

plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],

[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

plt.yticks([-1, 0, +1],

[r'$-1$', r'$0$', r'$+1$']) #×¢Ò⣺ÕâÀïÉèÖüǺÅʱ£¬Í¬Ê±ÉèÖÃÁ˼ǺŵıêÇ©¡£Ê¹ÓÃÁËLaTeX

plt.show()

£¨8£©µþ¼Óͼ£ºÓÃÒ»ÌõÖ¸Áî»­³ö¶àÌõ²»Í¬¸ñʽµÄÏß

ʾÀý£º

import matplotlib.pyplot as plt

import numpy as np

t = np.arange(0., 5., 0.2)

plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')

plt.show()

£¨9£©´´½¨×Óͼplt.subplot()

Ê×ÏÈͨ¹ýplt.figure()´´½¨Ò»ÕÅеÄͼ£¬Ö®ºóÓÃplt.subplot()´´½¨×Óͼ¡£

ÆäÖÐsubplot()Ö¸Áî°üº¬ÐÐÊý¡¢ÁÐÊýºÍͼÏñ±àºÅ£¬ÆäÖÐͼÏñ±àºÅµÄ·¶Î§ÊÇ´Ó1µ½ÐÐÊý * ÁÐÊý¡£

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 µÄ±êÌâ

£¨10£©plt.text()Ìí¼ÓÎÄ×Ö˵Ã÷

TextÓ﷨˵Ã÷£º

text(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")

ÆäÖУº

x,y:±íÊ¾×ø±êÖµÉϵÄÖµ

string:±íʾ˵Ã÷ÎÄ×Ö

fontsize:±íʾ×ÖÌå´óС

verticalalignment£º´¹Ö±¶ÔÆë·½Ê½ £¬²ÎÊý£º[ ¡®center¡¯ | ¡®top¡¯ | ¡®bottom¡¯ | ¡®baseline¡¯ ]

horizontalalignment£ºË®Æ½¶ÔÆë·½Ê½ £¬²ÎÊý£º[ ¡®center¡¯ | ¡®right¡¯ | ¡®left¡¯ ]

arrowprops #¼ýÍ·²ÎÊý,²ÎÊýÀàÐÍΪ×Öµädict ²ÎÊý£ºwidthµã¼ýÍ·µÄ¿í¶È£¬headwidthÔÚµãµÄ¼ýÍ·µ××ùµÄ¿í¶È£¬headlengthµã¼ýÍ·µÄ³¤¶È£¬shrink ×ܳ¤¶ÈΪ·ÖÊý¡°ËõË®¡±´ÓÁ½¶Ë£¬facecolor¼ýÍ·ÑÕÉ«

bbox¸ø±êÌâÔö¼ÓÍâ¿ò ÆäÖг£ÓòÎÊý£º boxstyle·½¿òÍâÐΣ¬facecolor(¼òдfc)±³¾°ÑÕÉ«£¬edgecolor(¼òдec)±ß¿òÏßÌõÑÕÉ«£¬edgewidth±ß¿òÏßÌõ´óС

ʾÀý£º

import matplotlib.pyplot as plt

plt.text(0.6, 0.5, "test", size=50, rotation=30.,ha="center", va="center",bbox=dict(boxstyle="round",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))

plt.text(0.5, 0.4, "test", size=50, rotation=-30.,ha="right", va="top",bbox=dict(boxstyle="square",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))

plt.draw()

plt.show()

£¨12£©Îı¾×¢ÊÍannotate()

¸ñʽ£ºannotate£¨s=¡¯str¡¯,xy=(x,y),xytext=(i1,i2),;...£©

annotate()²ÎÊýÉèÖüýͷָʾµÄλÖã¬xytext²ÎÊýÉèÖÃ×¢ÊÍÎÄ×ÖµÄλÖÃ

---arrowprops²ÎÊýÒÔ×ÖµäµÄÐÎʽÉèÖüýÍ·µÄÑùʽ

---width²ÎÊýÉèÖüýÍ·³¤·½Ðβ¿·ÖµÄ¿í¶È£¬headlength²ÎÊýÉèÖüýÍ·¼â¶ËµÄ³¤¶È

---headwidth²ÎÊýÉèÖüýÍ·¼â¶Ëµ×²¿µÄ¿í¶È£¬shrink²ÎÊýÉèÖüýÍ·¶¥µã¡¢Î²²¿Óëָʾµã¡¢×¢ÊÍÎÄ×ֵľàÀë(±ÈÀýÖµ)'''

ʾÀýÈçÏ£º

import numpy as np

import matplotlib.pyplot as plt

plt.figure(figsize=(6, 6))

x = np.random.randint(0, 10, size=10)

x[5] = 30 # ¶ÔxÖÐË÷ÒýֵΪ5µÄÖØÐ¸³Öµ

plt.plot(x)

plt.ylim([-2, 35])

# plt.annotate(s="this point is important", xy=(5, 30), xytext=(6, 31),arrowprops={"width": 2, "headlength": 5, "headwidth": #5, "shrink": 0.1})

plt.annotate(s="this point is important", xy=(5, 30), xytext=(6, 31),arrowprops={"arrowstyle":"->"}) # Èç¹ûarrowpropsÖÐÓÐarrowstyle,¾Í²»Ó¦¸ÃÓÐÆäËûµÄÊôÐÔ£¬xy´ú±íµÄÊǼýÍ·µÄλÖã¬xytext´ú±íµÄÊǼýÍ·Îı¾µÄλÖá£

plt.show()

£¨13£©plt.title()ÉèÖÃͼÏñ±êÌâ

title³£ÓòÎÊý:fontsizeÉèÖÃ×ÖÌå´óС¡¢fontweightÉèÖÃ×ÖÌå´Öϸ¡¢fontstyleÉèÖÃ×ÖÌåÀàÐÍ¡¢verticalalignmentÉèÖÃˮƽ¶ÔÆë·½Ê½ £¬¿ÉÑ¡Êý£º £º 'center' , 'top' , 'bottom' ,'baseline'

horizontalalignmentÉèÖô¹Ö±¶ÔÆë·½Ê½£¬¿ÉÑ¡²ÎÊý£ºleft,right,center

rotation(Ðýת½Ç¶È)¿ÉÑ¡²ÎÊýΪ:vertical,horizontal Ò²¿ÉÒÔΪÊý×Ö

alpha͸Ã÷¶È£¬²ÎÊýÖµ0ÖÁ1Ö®¼ä

backgroundcolor±êÌâ±³¾°ÑÕÉ«

£¨14£©MatplotlibÖеÄfill_between()º¯Êý×ܽá

l ʾÀý£ºÇúÏ߸²¸Ç

import numpy as np

import matplotlib.pyplot as plt

x = np.array([i for i in range(30)])

y = np.random.rand(30)

plt.plot(x, y)

plt.fill_between(x, 0, y, facecolor='green', alpha=0.3)

plt.show()

×¢Ò⣺fill_between()º¯ÊýÖеö²ÎÊý£º

x£ºµÚÒ»¸ö²ÎÊý±íʾ¸²¸ÇµÄÇøÓò£¬Ö±½Ó¸´ÖÆÎªx£¬±íʾÕû¸öx¶¼¸²¸Ç

0£º±íʾ¸²¸ÇµÄÏÂÏÞ

y£º ±íʾ¸²¸ÇµÄÉÏÏÞÊÇyÕâ¸öÇúÏß

facecolor:¸²¸ÇÇøÓòµÄÑÕÉ«

alpha£º¸²¸ÇÇøÓòµÄ͸Ã÷¶È[0,1]£¬ÆäÖµÔ½´ó£¬±íʾԽ²»Í¸Ã÷

²¿·ÖÇøÓò¸²¸Ç£ºplt.fill_between(x[2:15], 0.2, 0.6, facecolor='green', alpha=0.3)

Á½ÇúÏßÖ®¼äµÄ¸²¸Ç£º

y1 = np.random.rand(30)

y2 = y1 + 0.3

plt.plot(x, y1,'b',x,y2,'r')

plt.fill_between(x, y1, y2, facecolor='green', alpha=0.3)

ʾÀý£ºÏëҪʵÏÖÑ­»·Ìî³äÏëÒªÌî³äµÄ²¿·Ö£¬ÉèÖÃÌî³äµÄÉÏÏÂÏ޵ŦÄÜ

import numpy as np

import matplotlib.pyplot as plt

x = np.array([i for i in range(30)])

print(x)

y = np.random.rand(30)

# ÉèÖÃÏëÒª¸ßÁÁÊý¾ÝµÄλÖÃ

position = [[1, 6],

[10, 12],

[20, 23],

[26, 28]]

print(position)

# »­Í¼

plt.plot(x, y, 'r')

for i in position:

print(i) #Êä³ö½á¹ûiΪ£º[1, 6], [10, 12], [20, 23], [26, 28]

print(x[i[0]:i[1]]) #½á¹ûΪ£º[1 2 3 4 5] [10 11] [20 21 22] [26 27]

plt.fill_between(x[ i[0] : i[1] ], 0, 1, facecolor='green', alpha=0.3)

plt.show()

 
   
1982 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ