<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
折線圖(Line Chart)是一種將資料點按照順序連線起來的圖形,也可以看作是將散點圖按照X軸座標順序連結起來的圖形。折線圖的主要功能是檢視因變數y隨著自變數x改變的趨勢,最適合用於顯示隨時間(根據常用比例設定)而改變的連續資料。同時,還可以看出數量的差異
繪製折線圖plot的格式:
matplotlib.pyplot.plot(*args,**kwargs)
color引數的8種常用的縮寫見表
表2 color引數的常用顏色縮寫:
plt.plot繪製折線圖程式碼展示:
import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.arange(9) y = np.sin(x) z = np.cos(x) #marker資料點樣式,linewidth線寬,linestyle線型樣式,color顏色 plt.plot(x,y,marker='*',linewidth=1,linestyle='--',color='orange') plt.plot(x,z) plt.title('matplotlib AK') plt.xlabel('height',fontsize=15) plt.ylabel('width',fontsize=15) #設定圖例 plt.legend(['Y','Z'],loc='upper right') plt.grid(True) plt.show()
散點圖(Scatter Diagram)又稱為散點分佈圖,是以一個特徵為橫座標,另一個特徵為縱座標,使用座標點(散點)的分佈形態反映特徵間統計關係的一種圖形。值時由點在圖表中的位置表示,類別是由圖表中的不同標記表示 ,通常用於比較跨類別的資料
scatter方法的格式:
matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,alpha=None)
scatter函數主要引數及其說明見表3scatter的主要引數及其說明
scatter繪圖範例1:
fig.ax = plt.subplots() plt.rcParams['font.family'] = ['SimHei'] #用來顯示中文標籤 plt.rcParams['axes.unicode_minus'] = False #用來正常顯示符號 x1 = np.arange(1,30) y1 = np.sin(x1) ax1 = plt.subplot(1,1,1) plt.title('散點圖 AK') plt.xlabel('X') plt.ylabel('Y') lvalue = x1 ax1.scatter(x1,y1,c='r',s=100,linewidths=lvalue,marker='o') plt.legend('x1') plt.show(),
scatter繪圖範例2:
fig,ax = plt.subplots() plt.rcParams['font.family'] = ['SimHei'] #用來顯示中文標籤 plt.rcParams['axes.unicode_minus'] = False #用來正常顯示符號 for color in ['red','green','blue']: n = 500 x,y = np.random.randn(2,n) ax.scatter(x,y,c=color,label=color,alpha=0.3,edgecolor='none') ax.legend() ax.grid(True) plt.show()
直方圖(Histogram)又稱質量分佈圖,是統計報告圖的一種,由一系列高度不等的縱向條紋或線段表示資料分佈的情況,一般用橫軸表示資料所屬類別,縱軸表示數量或者佔比。用直方圖可以比較直觀地看出產品質量特性的分佈狀態,便於判斷其總體質量分佈情況。直方圖可以發現分佈表無法發現的資料模式、樣本的頻率分佈和總體的分佈。
繪製直方圖函數bar格式:
matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None)
函數bar的常用引數及其說明見下表4
表4 bar常用引數及其說明:
bar繪圖範例1:
import pandas as pd import matplotlib.pyplot as plt import numpy as np fig,axes = plt.subplots(2,1) data = pd.Series(np.random.randn(16),index=list('abcdefghijklmnop')) data.plot.bar(ax = axes[0],color='k',alpha=0.7) data.plot.barh(ax = axes[1],color='k',alpha=0.7)
bar繪圖範例2:
import pandas as pd import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = ['SimHei'] #用來顯示中文標籤 plt.rcParams['axes.unicode_minus'] = False #用來正常顯示符號 fig,ax = plt.subplots() x = np.arange(1,6) y1 = np.random.uniform(1.5,1.0,5) y2 = np.random.uniform(1.5,1.0,5) plt.bar(x,y1,width = 0.35,facecolor='lightskyblue',edgecolor = 'white') plt.bar(x+0.35,y2,width = 0.35,facecolor='yellowgreen',edgecolor = 'white') plt.show()
餅圖(Pie Graph)用於表示不同分類的佔比情況,通過弧度大小來對比各種分類,餅圖可以比較清楚的反映出部分與部分、部分與整體之間的比例關係,易於顯示每組資料相對於總數的大小,而且顯現的方式直觀。
繪製餅圖pie方法的格式:
matplotlib.pyplot.pie(x,explode = None,labels = None,color = None,autopct = None, pctdistance = 0.6,shadow=false,labeldistance=1.1,startangle=None,radius=None,...)
pie函數常用引數及其說明見表5
表5 pie函數常用引數及其說明:
pie繪圖範例:
plt.figure(figsize=(6,6)) #建立軸的大小 labels = ['Springs','Summer','Autumn','Winter'] x = [15,30,45,10] explode = (0.05,0.05,0.05,0.05) #這個是控制分離的距離的,預設餅圖不分離 plt.pie(x,labels = labels,explode = explode,startangle = 60,autopct='%1.1f%%') #autopct在圖中顯示比例值,注意值的格式 plt.title('Rany days by season') plt.show()
箱線圖(Boxplot)也稱盒須圖,通過繪製反映資料分佈特徵的統計量,提供有關資料位置和分散情況的關鍵資訊,尤其在比較不同特徵時,更可表現其分散程度差異。箱線圖使用資料中的5個統計量(最小值,下四分位數,中位數,上四分位數和最大值)來描述資料,它可以粗略地看出資料是否具有對稱性,分佈的分散程度等資訊,特別可以用於對幾個樣本的比較,還可以粗略檢測異常值。
boxplot函數的格式:
matplotlib.pyplot.boxplot(x,notch = None,sym = None,vert = None,whis = None, positions = None,width = None,patch_artist = None, meanline = None,labels = None,...)
boxplot函數常用引數及其說明見表6
表6 boxplot函數常用引數及其說明:
import numpy as np import pandas as pd import matplotlib.pyplot as plt np.random.seed(2)#設定隨機種子 df = pd.DataFrame(np.random.rand(5,4),columns = ['A','B','C','D']) #生成0~1的5*4維度資料並存入4列DataFrame中 df.boxplot() plt.show()
概率圖模型時圖靈獲得者Pearl提出的用來表示變數間概率依賴關係的理論,正態分佈又名高斯分佈。正太概率密度函數normpdf(X,mu,sigma),其中,X為向量,mu為均值,sigma為標準差。
繪製概率圖:
import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.stats import norm fig,ax = plt.subplots() plt.rcParams['font.family'] = ['SimHei'] #用來顯示中文標籤 plt.rcParams['axes.unicode_minus'] = False #用來正常顯示符號 np.random.seed(1587554) mu = 100 sigma = 15 x = mu+sigma*np.random.randn(437) num_bins = 50 n,bins,patches = ax.hist(x,num_bins,density=1,stacked=True) y = norm.pdf(bins,mu,sigma) ax.plot(bins,y,'--') fig.tight_layout() plt.show()
雷達圖也稱網路圖、星圖、蜘蛛網圖、不規則多邊形、極座標圖等。雷達圖是以從同一點開始的軸上表示的三個或更多個定量變數的二維圖表的形式顯示多變數資料的圖形方法。軸的相對位置和角度通常是無資訊的。雷達圖相當於平行座標圖,軸徑向排列。
繪製某學生成績資訊的雷達圖
import matplotlib.pyplot as plt import numpy as np %matplotlib inline #某學生的課程與成績 courses = ['資料結構','資料視覺化','高數','英語','軟體工程','組成原理','C語言','體育'] scores = [82,95,78,85,45,88,76,88] dataLength = len(scores) #資料長度 #angles陣列把圓周等分為dataLength份 angles = np.linspace(0,2*np.pi,dataLength,endpoint=False) scores.append(scores[0]) angless = np.append(angles,angles[0]) #閉合 #繪製雷達圖 plt.polar(angless, #設定角度 scores, #設定各個角度上的資料 'rv--', #設定顏色、線型和端點符號 linewidth=2) #設定線寬 #設定角度網路標籤 plt.thetagrids(angles*180/np.pi,courses,fontproperties='simhei',fontsize=12,color='k') #填充雷達圖內部 plt.fill(angless,scores,facecolor='g',alpha=0.2) plt.show()
在運輸問題中,常常需要表明產地的產量、銷地的銷量,以及流向和流量的交通圖,此時可以用到流向圖。流向圖能夠直觀地展示資料流向,揭示出運動中的一些規律或現象。
流向圖繪製:
import numpy as np import matplotlib.pyplot as plt Y,X = np.mgrid[-3:3:100j,-3:3:100j] U = -1-X**2+Y V = 1+X-Y**2 speed = np.sqrt(U*U+V*V) plt.streamplot(X,Y,U,V,color=U,linewidth = 2,cmap = plt.cm.autumn) plt.colorbar() f,(ax1,ax2) = plt.subplots(ncols=2) ax1.streamplot(X,Y,U,V,density=[0.5,1]) lw = 5*speed/speed.max() ax2.streamplot(X,Y,U,V,density=0.6,color='k',linewidth=lw) plt.show()
在繪圖中,有時候需要同時顯示資料表格。Matplotlib在繪圖中提供了table方法可以同時顯示資料表格
在繪圖中顯示資料表格;
import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['SimHei'] data = [[66386,174296,75131,577908,32015], [58230,381139,78045,99308,160454], [89135,80552,152558,497981,603535], [78415,81858,150656,193263,69638], [139361,331509,343164,781380,52269]] columns = ('Freeze','Wind','Flood','Quake','Hail') rows = ['%d year'% x for x in (100,50,20,10,5)] values = np.arange(0,2500,500) value_increment = 1000 colors = plt.cm.BuPu(np.linspace(0,0.5,len(columns))) n_rows=len(data) index = np.arange(len(columns))+0.3 bar_width=0.4 y_offset = np.array([0.0]*len(columns)) cell_text = [] for row in range(n_rows): plt.bar(index,data[row],bar_width,bottom=y_offset) y_offset = y_offset+data[row] cell_text.append(['%1.1f'%(x/1000.0) for x in y_offset]) colors = colors[::-1] cell_text.reverse() the_table = plt.table(cellText=cell_text, rowLabels=rows, rowColours = colors, colLabels = columns, loc = 'bottom') plt.subplots_adjust(left=0.2,bottom=0.2) plt.ylabel("Loss in ${0}'s".format(value_increment)) plt.yticks(values*value_increment,['%d' % val for val in values]) plt.xticks([]) plt.title('氣象災害損失') plt.show()
在平面投影中,由X軸和Y軸定位座標;而在極座標投影中,需要以半徑和角度的形式定位座標。極座標投影中的半徑以圓半徑的大小顯示,並且以每個角度為0°的圓的角度為起點投影角度。要生成極座標投影,需要將投影型別定義為極座標。
繪製極座標圖:
import numpy as np import matplotlib.pyplot as plt r = np.linspace(0,2,100) theta = 2*np.pi*r fig = plt.figure(figsize=(13,4)) ax1 = plt.subplot(121,projection='polar') ax1.scatter(theta,r,label='Polar Projection',s=10) ax1.legend(bbox_to_anchor=(0.85,1.35)) ax2 = plt.subplot(122) ax2.scatter(theta,r,label='Polar Projection',s=10) ax2.legend(bbox_to_anchor=(0.85,1.35)) ax2.set_xlabel('R') ax2.set_ylabel(r'$theta$')
詞雲用於對網路文字中出現頻率較高的關鍵詞予以視覺上的突出,形成“關鍵詞雲層”或“關鍵詞渲染”,從而過濾掉大量的文字資訊,使瀏覽網頁者只需要一眼掃過文字就可以領略文字的主旨。
繪製詞需要WordCloud和jieba包。jieba用於從文字的句子裡分割出詞彙。
兩個包的安裝語句:
pip install wordcloudpip install jieba
一般生成詞雲的過程為:
到此這篇關於python matplotlib繪畫十一種常見資料分析圖的文章就介紹到這了,更多相關python matplotlib 繪圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45