国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

這篇具有很好參考價(jià)值的文章主要介紹了Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  • 本文來自《Python數(shù)據(jù)分析從入門到精通》_明日科技編著

5.6 常用圖表的繪制

  • 本節(jié)介紹常用圖表的繪制,主要包括繪制折線圖、繪制柱形圖、繪制直方圖、繪制餅形圖、繪制散點(diǎn)圖、繪制面積圖、繪制熱力圖、繪制箱型圖、繪制3D圖表、繪制多個(gè)子圖表以及圖表的保存。對(duì)于常用的圖表類型以繪制多種類型圖表進(jìn)行舉例,以適應(yīng)不同應(yīng)用場(chǎng)景的需求。

5.6.1 繪制折線圖

  • 折線圖可以顯示隨時(shí)間而變化的連續(xù)數(shù)據(jù),因此非常適用于顯示在相等時(shí)間間隔下數(shù)據(jù)的趨勢(shì)。如基礎(chǔ)體溫曲線圖、學(xué)生成績(jī)走勢(shì)圖、股票月成交量走勢(shì)圖,月銷售量統(tǒng)計(jì)分析圖、微博、公眾號(hào)、網(wǎng)站訪問量統(tǒng)計(jì)圖等都可以用折線圖體現(xiàn)。在折線圖中,類別數(shù)據(jù)沿水平軸均勻分布,所有值數(shù)據(jù)沿垂直軸均勻分布。
  • Matplotlib繪制折線圖主要使用plot()函數(shù),相信通過前面的學(xué)習(xí),您已經(jīng)了解了plot()函數(shù)的基本用法,并能夠繪制一些簡(jiǎn)單的折線圖,下面嘗試?yán)L制多折線圖。
繪制學(xué)生語(yǔ)數(shù)外各科成績(jī)分析圖(12)
  • 使用plot()函數(shù)繪制多折線圖。例如,繪制學(xué)生語(yǔ)數(shù)外各科成績(jī)分析圖,程序代碼如下:
import pandas as pd
import matplotlib.pyplot as plt
df1=pd.read_excel('data.xls')              #導(dǎo)入Excel文件
df1

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

#多折線圖
x1=df1['姓名']
y1=df1['語(yǔ)文']
y2=df1['數(shù)學(xué)']
y3=df1['英語(yǔ)']
plt.rcParams['font.sans-serif']=['SimHei']    #解決中文亂碼
plt.rcParams['xtick.direction'] = 'out'       #x軸的刻度線向外顯示
plt.rcParams['ytick.direction'] = 'in'        #y軸的刻度線向內(nèi)顯示
plt.title('語(yǔ)數(shù)外成績(jī)大比拼',fontsize='18')   #圖表標(biāo)題
plt.plot(x1,y1,label='語(yǔ)文',color='r',marker='p')
plt.plot(x1,y2,label='數(shù)學(xué)',color='g',marker='.',mfc='r',ms=8,alpha=0.7)
plt.plot(x1,y3,label='英語(yǔ)',color='b',linestyle='-.',marker='*')
plt.grid(axis='y')                             #顯示網(wǎng)格關(guān)閉y軸
plt.ylabel('分?jǐn)?shù)')
plt.yticks(range(50,150,10))
plt.legend(['語(yǔ)文','數(shù)學(xué)','英語(yǔ)'])             #圖例
plt.savefig('image.png')
plt.show()

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 上述舉例,用到了幾個(gè)參數(shù),下面進(jìn)行說明。
  • mfc:標(biāo)記的顏色
  • ms:標(biāo)記的大小
  • mec:標(biāo)記邊框的顏色
  • alpha:透明度,設(shè)置該參數(shù)可以改變顏色的深淺

5.6.2 繪制柱形圖

  • 柱形圖,又稱長(zhǎng)條圖、柱狀圖、條狀圖等,是一種以長(zhǎng)方形的長(zhǎng)度為變量的統(tǒng)計(jì)圖表。柱形圖用來比較兩個(gè)或兩個(gè)以上的數(shù)據(jù)(不同時(shí)間或者不同條件),只有一個(gè)變量,通常用于較小的數(shù)據(jù)集分析。
  • Matplotlib繪制柱形圖主要使用bar()函數(shù),語(yǔ)法如下:
matplotlib.pyplot.bar(x,height,width,bottom=None,*,align='center',data=None,**kwargs)
  • x:x軸數(shù)據(jù)
  • height:柱子的高度,也就是y軸數(shù)據(jù)
  • width:浮點(diǎn)型,柱子的寬度,默認(rèn)值為0.8,可以指定固定值
  • bottom:標(biāo)量或數(shù)組,可選參數(shù),柱形圖的y坐標(biāo),默認(rèn)值為None
  • *:星號(hào)本身不是參數(shù)。星號(hào)表示其后面的參數(shù)為命名關(guān)鍵字參數(shù),命名關(guān)鍵字參數(shù)必須傳入?yún)?shù)名;否則程序會(huì)出現(xiàn)錯(cuò)誤。
  • align:對(duì)齊方式,如center(居中)和edge(邊緣),默認(rèn)值為center
  • data:data關(guān)鍵字參數(shù)。如果給定一個(gè)數(shù)據(jù)參數(shù),所有位置和關(guān)鍵字參數(shù)都將被替換
  • **kwargs:關(guān)鍵字參數(shù),其他可選參數(shù),如color(顏色)、alpha(透明度)、label(每個(gè)柱子顯示的標(biāo)簽)等。
4行代碼繪制簡(jiǎn)單的柱形圖(13)
import matplotlib.pyplot as plt
x=[1,2,3,4,5,6]
height=[10,20,30,40,50,60]
plt.bar(x,height)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • bar()函數(shù)可以繪制出各種類型的柱形圖,如基本柱形圖、多柱形圖、堆疊柱形圖,只要將bar()函數(shù)的主要參數(shù)理解透徹,就會(huì)達(dá)到意想不到的效果。下面介紹幾種常見的柱形圖。
1.基本柱形圖(14)
  • 使用bar()函數(shù)繪制“2013-2019年線上圖書銷售額分析圖”,程序代碼如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('books.xlsx')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
x=df['年份']
height=df['銷售額']
plt.grid(axis="y", which="major")  # 生成虛線網(wǎng)格
#x、y軸標(biāo)簽
plt.xlabel('年份')
plt.ylabel('線上銷售額(元)')

#圖表標(biāo)題
plt.title('2013-2019年線上圖書銷售額分析圖')
plt.bar(x,height,width = 0.5,align='center',color = 'b',alpha=0.5,bottom=0.8)
#設(shè)置每個(gè)柱子的文本標(biāo)簽,format(b,',')格式化銷售額為千位分隔符格式
for a,b in zip(x,height):
    plt.text(a, b,format(b,','), ha='center', va= 'bottom',fontsize=9,color = 'b',alpha=0.9)
#圖例
plt.legend(['銷售額'])

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

2.多柱形圖 (15)
  • 對(duì)于線上圖書銷售額的統(tǒng)計(jì),如果要統(tǒng)計(jì)各個(gè)平臺(tái)的銷售額,可以使用多柱形圖,不同顏色的柱子代表不同的平臺(tái),如京東、天貓、自營(yíng)等,程序代碼如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('books.xlsx',sheet_name='Sheet2')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼

x=df['年份']
y1=df['京東']
y2=df['天貓']
y3=df['自營(yíng)']
width =0.25  #柱子寬度,若顯示n個(gè)柱子,則width值需小于1/n ,否則柱子會(huì)出現(xiàn)重疊
#y軸標(biāo)簽
plt.ylabel('線上銷售額(元)')
#圖表標(biāo)題
plt.title('2013-2019年線上圖書銷售額分析圖')
plt.bar(x,y1,width = width,color = 'darkorange')
plt.bar(x+width,y2,width = width,color = 'deepskyblue')
plt.bar(x+2*width,y3,width = width,color = 'g')
#設(shè)置每個(gè)柱子的文本標(biāo)簽,format(b,',')格式化銷售額為千位分隔符格式
# plt.text是設(shè)置文本的位置
for a,b in zip(x,y1):
    plt.text(a, b,format(b,','), ha='center', va= 'bottom',fontsize=8)
for a,b in zip(x,y2):
    plt.text(a+width, b,format(b,','), ha='center', va= 'bottom',fontsize=8)
for a, b in zip(x, y3):
    plt.text(a + 2*width, b, format(b, ','), ha='center', va='bottom',fontsize=8)
plt.legend(['京東','天貓','自營(yíng)'])#圖例

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.6.3 繪制直方圖

  • 直方圖,又稱質(zhì)量分布圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。直方圖是數(shù)值數(shù)據(jù)分布的精確圖形表示,是一個(gè)連續(xù)變量(定量變量)的概率分布的估計(jì)。
  • 繪制直方圖主要使用hist()函數(shù),語(yǔ)法如下:
matplotlib.pyplot.hist(x,bin=None,range=None,density=None,bottom=None,histtype='bar',align='mid',bog=False,color=None,labe=None,stacked=False,normed=None)
  • x:數(shù)據(jù)集,最終的直方圖將對(duì)數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)
  • bins:統(tǒng)計(jì)數(shù)組的區(qū)間分布
  • range:元組類型,顯示的區(qū)間
  • density:布爾型,顯示的頻率統(tǒng)計(jì)結(jié)果,默認(rèn)值為None。設(shè)置值為False,不顯示頻率統(tǒng)計(jì)結(jié)果;設(shè)置值為True,則顯示頻率統(tǒng)計(jì)結(jié)果。需要統(tǒng)計(jì)結(jié)果=區(qū)間數(shù)目/(總數(shù)x區(qū)間寬度)。
  • histtype:可選參數(shù),設(shè)置值為bar、barstacked、step或stepfilled,默認(rèn)值bar,推薦使用默認(rèn)配置,其中step使用的是梯狀,stepfilled則會(huì)對(duì)梯狀內(nèi)部進(jìn)行填充,效果與bar類似。
  • align:可選參數(shù),控制柱狀圖的水平分布,設(shè)置值為left、mid或right,默認(rèn)值為mid,其中,left或者right會(huì)有部分空白區(qū)域,推薦使用默認(rèn)值。
  • log:布爾型,默認(rèn)值為False,即y坐標(biāo)軸是否選擇指數(shù)刻度。
  • stacked:布爾型,默認(rèn)值為False,是否為堆積柱狀圖。
繪制簡(jiǎn)單直方圖(16)
import matplotlib.pyplot as plt
x=[22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]
plt.hist(x, bins = [0,25,50,75,100])

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

直方圖分析學(xué)生數(shù)學(xué)成績(jī)分布情況(17)
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('grade1.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
x=df['得分']
plt.xlabel('分?jǐn)?shù)')
plt.ylabel('學(xué)生數(shù)量')
# 顯示圖標(biāo)題
plt.title("高一數(shù)學(xué)成績(jī)分布直方圖")
plt.hist(x, bins = [0,25,50,75,100,125,150],facecolor="blue", edgecolor="black", alpha=0.7)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.6.4 繪制餅形圖

  • 餅形圖常用來顯示各個(gè)部分在整體中所占的比例。例如,在工作中如果遇到需要計(jì)算總費(fèi)用或金額的各個(gè)部分構(gòu)成的情況,一般通過各個(gè)部分與總額相除來計(jì)算,而且這種比例表示方法很抽象,而通過餅形圖將直接顯示各個(gè)組成部分所占比例,一目了然。
  • Matplotlib繪制餅形圖主要使用pie()函數(shù),語(yǔ)法如下:
matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=None,counterclock=True,wedgeprops=None,textprops=None,center=(0,0),frame=False,rotatelabels=False,hold=None,data=None)
  • x:每一塊餅圖的比例,如果sum(x) > 1會(huì)使用sum(x)歸一化。
  • explode:每一塊餅圖離中心的距離。
  • labels:每一塊餅圖外側(cè)顯示的說明文字
  • autopct:設(shè)置餅圖百分比,可以使用格式化字符串format()函數(shù)。如’%1.1f’保留小數(shù)點(diǎn)前后1位。
  • pctdistance:類似于labeldistance參數(shù),指定百分比的位置刻度,默認(rèn)值為0.6
  • shadow:在餅圖下面畫一個(gè)陰影,默認(rèn)值為False,即不畫陰影。
  • labeldistance:標(biāo)記的繪制位置,相對(duì)于半徑的比例,默認(rèn)值為1.1,如設(shè)置值為90則從y軸正方向畫起。
  • radius:餅圖半徑,默認(rèn)值為1
  • counterclock:指定指針方向,布爾型,可選參數(shù)。默認(rèn)值為True,表示逆時(shí)針;如果值為False,則表示順時(shí)針
  • wedgeprops:字典類型,可選參數(shù),默認(rèn)值為None。字典傳遞給wedge對(duì)象,用來畫一個(gè)餅圖。例如wedgeprops={‘linewidth’:2}設(shè)置wedge線寬為2.
  • textprops:設(shè)置標(biāo)簽和比例文字的格式,字典類型,可選參數(shù),默認(rèn)值為None。傳遞給text對(duì)象的字典參數(shù)
  • center:浮點(diǎn)類型的列表,可選參數(shù),默認(rèn)值為(0,0),表示圖表中心位置。
  • frame:布爾型,可選參數(shù),默認(rèn)值為False,不顯示框架(也就是網(wǎng)絡(luò));如果值為True,則顯示軸框架,與grid()函數(shù)配合使用。實(shí)際應(yīng)用中建議使用默認(rèn)設(shè)置,因?yàn)轱@示軸框架會(huì)干擾餅形圖效果。
  • rotatelabels:布爾型,可選參數(shù),默認(rèn)值為False;如果值為True,則旋轉(zhuǎn)每個(gè)標(biāo)簽到指定的角度。
繪制簡(jiǎn)單餅形圖(18)
import matplotlib.pyplot as plt
x = [2,5,12,70,2,9]
plt.pie(x,autopct='%1.1f%%')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

1.基礎(chǔ)餅形圖(19)
  • 通過餅形圖分析各地區(qū)銷量占比情況:
import pandas as pd
from matplotlib import pyplot as plt
df1 = pd.read_excel('data2.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.figure(figsize=(5,3)) #設(shè)置畫布大小
labels = df1['地區(qū)']
sizes = df1['銷量']
#設(shè)置餅形圖每塊的顏色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']
plt.pie(sizes, #繪圖數(shù)據(jù)
        labels=labels,#添加區(qū)域水平標(biāo)簽
        colors=colors,# 設(shè)置餅圖的自定義填充色
        labeldistance=1.02,#設(shè)置各扇形標(biāo)簽(圖例)與圓心的距離
        autopct='%.1f%%',# 設(shè)置百分比的格式,這里保留一位小數(shù)
        startangle=90,# 設(shè)置餅圖的初始角度
        radius = 0.5, # 設(shè)置餅圖的半徑
        center = (0.2,0.2), # 設(shè)置餅圖的原點(diǎn)
        textprops = {'fontsize':9, 'color':'k'}, # 設(shè)置文本標(biāo)簽的屬性值
        pctdistance=0.6)# 設(shè)置百分比標(biāo)簽與圓心的距離
# 設(shè)置x,y軸刻度一致,保證餅圖為圓形
plt.axis('equal')
plt.title('20201月各地區(qū)銷量占比情況分析')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

2.分裂餅形圖(20)
  • 分裂餅形圖是將您認(rèn)為主要的餅圖部分分裂出來,以達(dá)到突出顯示的目的。
  • 將銷量占比量最多的廣東省分裂顯示,效果如下面第一個(gè)圖所示。分裂餅形圖可以同時(shí)分裂多塊,如下面第二個(gè)圖所示。
import pandas as pd
from matplotlib import pyplot as plt
df1 = pd.read_excel('data2.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.figure(figsize=(5,3)) #設(shè)置畫布大小
labels = df1['地區(qū)']
sizes = df1['銷量']
#設(shè)置餅形圖每塊的顏色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']
plt.pie(sizes, #繪圖數(shù)據(jù)
        labels=labels,#添加區(qū)域水平標(biāo)簽
        colors=colors,# 設(shè)置餅圖的自定義填充色
        labeldistance=1.02,#設(shè)置各扇形標(biāo)簽(圖例)與圓心的距離
        autopct='%.1f%%',# 設(shè)置百分比的格式,這里保留一位小數(shù)
        startangle=90,# 設(shè)置餅圖的初始角度
        radius = 0.5, # 設(shè)置餅圖的半徑
        center = (0.2,0.2), # 設(shè)置餅圖的原點(diǎn)
        textprops = {'fontsize':9, 'color':'k'}, # 設(shè)置文本標(biāo)簽的屬性值
        pctdistance=0.6,# 設(shè)置百分比標(biāo)簽與圓心的距離
        #shadow=True,      #陰影
        explode = (0.1,0,0,0,0,0,0,0,0,0))  #設(shè)置分裂餅圖
        #explode = (0.1,0,0,0,0,0,0,0.1,0.1,0))  #設(shè)置多分裂餅圖
# 設(shè)置x,y軸刻度一致,保證餅圖為圓形

plt.axis('equal')
plt.title('20201月各地區(qū)銷量占比情況分析')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)
Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 分裂餅圖主要是通過設(shè)置explode參數(shù)實(shí)現(xiàn),該參數(shù)用于設(shè)置餅圖距中心的距離,我們需要將哪塊餅圖分裂出來,就設(shè)置它與中心的距離即可。例如,上圖中,我們將占比最多的”廣東省“分裂出來,如上面第二個(gè)圖所示。廣東省排在第一位,那么就設(shè)置第一位距中心的距離為0.1,其他為0,關(guān)鍵代碼如下:
explode = (0.1,0,0,0,0,0,0,0,0,0))
3.立體感帶陰影的餅形圖
  • 立體感帶陰影的餅形圖看起來更美觀,效果如下圖所示:
  • 立體感帶陰影的餅形圖主要通過shadow參數(shù)實(shí)現(xiàn),設(shè)置該參數(shù)值為True即可,主要代碼如下:
shadow=True,      #陰影
import pandas as pd
from matplotlib import pyplot as plt
df1 = pd.read_excel('data2.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.figure(figsize=(5,3)) #設(shè)置畫布大小
labels = df1['地區(qū)']
sizes = df1['銷量']
#設(shè)置餅形圖每塊的顏色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']
plt.pie(sizes, #繪圖數(shù)據(jù)
        labels=labels,#添加區(qū)域水平標(biāo)簽
        colors=colors,# 設(shè)置餅圖的自定義填充色
        labeldistance=1.02,#設(shè)置各扇形標(biāo)簽(圖例)與圓心的距離
        autopct='%.1f%%',# 設(shè)置百分比的格式,這里保留一位小數(shù)
        startangle=90,# 設(shè)置餅圖的初始角度
        radius = 0.5, # 設(shè)置餅圖的半徑
        center = (0.2,0.2), # 設(shè)置餅圖的原點(diǎn)
        textprops = {'fontsize':9, 'color':'k'}, # 設(shè)置文本標(biāo)簽的屬性值
        pctdistance=0.6,# 設(shè)置百分比標(biāo)簽與圓心的距離
        shadow=True,      #陰影
        explode = (0.1,0,0,0,0,0,0,0,0,0))  #設(shè)置分裂餅圖,本例中第一個(gè)數(shù)字最大
        #explode = (0.1,0,0,0,0,0,0,0.1,0.1,0))  #設(shè)置多分裂餅圖
# 設(shè)置x,y軸刻度一致,保證餅圖為圓形

plt.axis('equal')
plt.title('20201月各地區(qū)銷量占比情況分析')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

4.環(huán)形圖(21)
  • 環(huán)形圖是由兩個(gè)及以上大小不一的餅圖在一起,挖去中間的部分所構(gòu)成的圖形,效果如下:
import pandas as pd
from matplotlib import pyplot as plt
df1 = pd.read_excel('data2.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.figure(figsize=(5,3)) #設(shè)置畫布大小
labels = df1['地區(qū)']
sizes = df1['銷量']
#設(shè)置餅形圖每塊的顏色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']
plt.pie(sizes, #繪圖數(shù)據(jù)
        labels=labels,#添加區(qū)域水平標(biāo)簽
        colors=colors,# 設(shè)置餅圖的自定義填充色
        autopct='%.1f%%',# 設(shè)置百分比的格式,這里保留一位小數(shù)
        #radius =1 , # 設(shè)置餅圖的半徑
        pctdistance=0.85,
        startangle = 180,
        textprops = {'fontsize':9, 'color':'k'}, # 設(shè)置文本標(biāo)簽的屬性值
        wedgeprops = {'width': 0.4, 'edgecolor': 'k'})
plt.title('20201月各地區(qū)銷量占比情況分析')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 這里還是通過pie()函數(shù)實(shí)現(xiàn),一個(gè)關(guān)鍵參數(shù)wedgegroups,字典類型,用于設(shè)置餅形圖內(nèi)、外邊界的屬性,如環(huán)的寬度,環(huán)邊界顏色和寬度,主要代碼如下:
wedgeprops = {'width': 0.4, 'edgecolor': 'k'}
5.內(nèi)嵌環(huán)形圖(22)
  • 內(nèi)嵌環(huán)形圖實(shí)際是雙環(huán)形圖,效果如下:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
df1 = pd.read_excel('data2.xls')
df2=pd.read_excel('data2.xls',sheet_name='2月')
#數(shù)據(jù)集,x1,x2分別對(duì)應(yīng)外環(huán)、內(nèi)環(huán)百分比例
x1=df1['銷量']
x2=df2['銷量']
#設(shè)置餅狀圖各個(gè)區(qū)塊的顏色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']
#外環(huán)
plt.pie(x1,autopct='%.1f%%',radius=1,pctdistance=0.85,colors=colors,wedgeprops=dict(linewidth=2,width=0.3,edgecolor='w'))
#內(nèi)環(huán)
plt.pie(x2,autopct='%.1f%%',radius=0.7,pctdistance=0.7,colors=colors,wedgeprops=dict(linewidth=2,width=0.4,edgecolor='w'))
#圖例
legend_text=df1['地區(qū)']
plt.legend(legend_text,title='地區(qū)',frameon=False,bbox_to_anchor=(0.2,0.5))#設(shè)置圖例標(biāo)題、位置、去掉圖例邊框
plt.axis('equal')#設(shè)置坐標(biāo)軸比例以顯示為圓形
plt.title('20201月和2月各地區(qū)銷量占比情況分析')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 繪制嵌套環(huán)形圖需要注意以下三點(diǎn):
  • (1)連續(xù)使用兩次pie()函數(shù)。
  • (2)通過wedgeprops參數(shù)設(shè)置環(huán)形邊界。
  • (3)通過radius參數(shù)設(shè)置不同的半徑。
  • 另外,由于圖例內(nèi)容比較長(zhǎng),為了圖例能夠正常顯示,圖例代碼中引入了兩個(gè)主要參數(shù),即frameon和bboox_to_anchor。其中,frameon參數(shù)設(shè)置圖例有無邊框;bbox_to_anchor參數(shù)設(shè)置圖例位置,主要代碼如下:
#外環(huán)
plt.pie(x1,autopct='%.1f%%',radius=1,pctdistance=0.85,colors=colors,wedgeprops=dict(linewidth=2,width=0.3,edgecolor='w'))
#內(nèi)環(huán)
plt.pie(x2,autopct='%.1f%%',radius=0.7,pctdistance=0.7,colors=colors,wedgeprops=dict(linewidth=2,width=0.4,edgecolor='w'))
#圖例
legend_text=df1['地區(qū)']
plt.legend(legend_text,title='地區(qū)',frameon=False,bbox_to_anchor=(0.2,0.5))#設(shè)置圖例標(biāo)題、位置、去掉圖例邊框

5.6.5 繪制散點(diǎn)圖

  • 散點(diǎn)圖主要用來查看數(shù)據(jù)的分布情況或相關(guān)性,一般在線性回歸分析中,查看數(shù)據(jù)點(diǎn)在坐標(biāo)系平面的分布情況。散點(diǎn)圖表示因變量隨自變量而變化的大致趨勢(shì),據(jù)此可以選擇合適的函數(shù)對(duì)數(shù)據(jù)進(jìn)行擬合。
  • 散點(diǎn)圖與折線圖類似,也是一個(gè)個(gè)點(diǎn)構(gòu)成的。但不同之處在于,散點(diǎn)圖的各點(diǎn)之間不會(huì)按照前后關(guān)系以線條連接起來。
  • Matplotlib繪制散點(diǎn)圖使用plot()函數(shù)和scatter()函數(shù)都可以實(shí)現(xiàn),本節(jié)使用scatter()函數(shù)繪制散點(diǎn)圖,scatter()函數(shù)專門用于繪制散點(diǎn)圖,使用方式和plot()函數(shù)類似,區(qū)別在于前者具有更高的靈活性,可以單獨(dú)控制每個(gè)散點(diǎn)與數(shù)據(jù)匹配,并讓每個(gè)散點(diǎn)具有不同的屬性。scatter()函數(shù)的語(yǔ)法如下:
matplotlib.pyplot.scatter(x,y,s=None,marker=None,cmap=None,norm=None,vmax=None,alpha=None,linewidths=None,verts=None,edgecolors=None,data=None,**kwargs)
  • x,y:數(shù)據(jù)
  • s:標(biāo)記大小,以平方磅為單位的標(biāo)記面積,設(shè)置值如下。數(shù)值標(biāo)量:以相同的大小繪制所有標(biāo)記。行或列向量:是每個(gè)標(biāo)記具有不同的大小。x、y和sz中的相應(yīng)元素確定每個(gè)標(biāo)記的位置和面積。sz的長(zhǎng)度必須等于x和y的長(zhǎng)度。[]:使用36平方磅的默認(rèn)面積。
  • c:標(biāo)記顏色,可選參數(shù),默認(rèn)標(biāo)記顏色為藍(lán)色
  • marker:標(biāo)記樣式,可選參數(shù),默認(rèn)值為’o’
  • cmap:顏色地圖,可選參數(shù),默認(rèn)值為None
  • norm:可選參數(shù),默認(rèn)值為None
  • vmin,vmax:標(biāo)量,可選,默認(rèn)值為None
  • alpha:透明度,可選參數(shù),0~1的數(shù),表示透明度,默認(rèn)值為None
  • linewidths:線寬,標(biāo)記邊緣的寬度,可選參數(shù),默認(rèn)值為None
  • verts:(x,y)的序列,可選參數(shù),如果參數(shù)marker為None,這些頂點(diǎn)將用于構(gòu)建標(biāo)記。標(biāo)記的中心位置為(0,0)
  • edgecolors:輪廓顏色,與參數(shù)c類似,可選參數(shù),默認(rèn)值為None
  • data:data關(guān)鍵字參數(shù)。如果給定一個(gè)數(shù)據(jù)參數(shù),所有位置和關(guān)鍵字參數(shù)將被替換
  • **kwargs:關(guān)鍵字參數(shù),其他可選參數(shù)
繪制簡(jiǎn)單散點(diǎn)圖(23)
import matplotlib.pyplot as plt
x=[1,2,3,4,5,6]
y=[19,24,37,43,55,68]
plt.scatter(x, y)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

散點(diǎn)圖分析銷售收入與廣告費(fèi)的相關(guān)性(24)
  • 接下來,繪制銷售收入與廣告費(fèi)散點(diǎn)圖,用以觀察銷售收入與廣告費(fèi)的相關(guān)性:
import pandas as pd
import matplotlib.pyplot as plt
aa =r'JDdata.xls'
bb=r'JDcar.xls'
dfaa = pd.DataFrame(pd.read_excel(aa))
dfbb=pd.DataFrame(pd.read_excel(bb))
df1=dfaa[['業(yè)務(wù)日期','金額']]
df2=dfbb[['投放日期','支出']]
df1

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

#去除空日期和金額為0的記錄
df1=df1[df1['業(yè)務(wù)日期'].notnull() & df1['金額'] !=0]
df2=df2[df2['投放日期'].notnull() & df2['支出'] !=0]
df1['業(yè)務(wù)日期'] = pd.to_datetime(df1['業(yè)務(wù)日期'])
df2['投放日期'] = pd.to_datetime(df2['投放日期'])

# set_index用法:https://zhuanlan.zhihu.com/p/143839744
dfData = df1.set_index('業(yè)務(wù)日期',drop=True) #將業(yè)務(wù)日期設(shè)置列設(shè)置為索引,并刪掉原來的日期索引列
dfCar=df2.set_index('投放日期',drop=True)
dfData

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

# 按月度統(tǒng)計(jì)并顯示銷售金額
dfData_month=dfData.resample('M').sum().to_period('M')
# 按月度統(tǒng)計(jì)并顯示廣告費(fèi)支出金額
dfCar_month=dfCar.resample('M').sum().to_period('M')
dfData_month

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

#x為廣告費(fèi)用,y為銷售收入
x=pd.DataFrame(dfCar_month['支出'])
y=pd.DataFrame(dfData_month['金額'])
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.title('銷售收入與廣告費(fèi)散點(diǎn)圖')   #圖表標(biāo)題
plt.scatter(x, y,  color='red') #真實(shí)值散點(diǎn)圖

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.6.6 繪制面積圖

  • 面積圖用于體現(xiàn)數(shù)量隨時(shí)間而變化的程度,也可以用于引起人們對(duì)總值趨勢(shì)的注意。例如,表示隨時(shí)間而變化的利潤(rùn)的數(shù)據(jù)可以繪制在面積圖中,以強(qiáng)調(diào)總利潤(rùn)。
  • Matplotlib繪制面積圖主要使用stackplot()函數(shù),語(yǔ)法如下:
matplotlib.pyplot.stackplot(x,*args,data=None,**kwargs)
  • x:x軸數(shù)據(jù)
  • args:當(dāng)傳入的參數(shù)個(gè)數(shù)未知時(shí)使用args。這里指y軸數(shù)據(jù)可以傳入多個(gè)y軸。
  • data:data關(guān)鍵字參數(shù)。如果給定一個(gè)數(shù)據(jù)參數(shù),所有位置和關(guān)鍵字參數(shù)將被替換。
  • **kwargs:關(guān)鍵字參數(shù),其他可選參數(shù),如color(顏色)、alpha(透明度)等。
繪制簡(jiǎn)單面積圖(25)
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y1 =[6,9,5,8,4]
y2 = [3,2,5,4,3]
y3 =[8,7,8,4,3]
y4 = [7,4,6,7,12]
plt.stackplot(x, y1,y2,y3,y4, colors=['g','c','r','b'])

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 面積圖也有很多種,如標(biāo)準(zhǔn)面積圖、堆疊面積圖和百分比堆疊面積圖等。下面主要介紹標(biāo)準(zhǔn)堆疊面積圖。
1.標(biāo)準(zhǔn)面積圖(26)
  • 通過標(biāo)準(zhǔn)面積圖分析2013-2019年線上圖書銷售情況,通過該圖可以看出每一年線上圖書銷售的一個(gè)趨勢(shì):
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('books.xlsx')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
x=df['年份']
y=df['銷售額']
#圖表標(biāo)題
plt.title('2013-2019年線上圖書銷售情況')
plt.stackplot(x, y)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

2.堆疊面積圖(27)
  • 通過堆疊面積圖分析2013-2019年線上各平臺(tái)圖書銷售情況。堆疊圖不僅可以看到各平臺(tái)每年銷售變化趨勢(shì),通過將各平臺(tái)數(shù)據(jù)堆疊到一起還可以看到整體的變化趨勢(shì)。
  • 實(shí)現(xiàn)堆疊面積圖的關(guān)鍵在于增加y軸,通過增加多個(gè)y軸數(shù)據(jù),形成堆疊面積圖,代碼如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('books.xlsx',sheet_name='Sheet2')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
x=df['年份']
y1=df['京東']
y2=df['天貓']
y3=df['自營(yíng)']
#圖表標(biāo)題
plt.title('2013-2019年線上圖書銷售情況')
plt.stackplot(x, y1,y2,y3,colors=['#6d904f','#fc4f30','#008fd5'])
#圖例
plt.legend(['京東','天貓','自營(yíng)'],loc='upper left')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.6.7 繪制熱力圖

  • 熱力圖是通過密度函數(shù)進(jìn)行可視化用于表示地圖中的密度的熱圖。它使人們能夠獨(dú)立于縮放因子感知點(diǎn)的密度。熱力圖可以顯示不可點(diǎn)擊區(qū)域發(fā)生的事情。利用熱力圖可以看到數(shù)據(jù)表里多個(gè)特征兩兩的相似度。例如,以特殊高亮的形式顯示訪客熱衷的頁(yè)面區(qū)域和訪客所在的地理區(qū)域的圖示。熱力圖在網(wǎng)頁(yè)分析、業(yè)務(wù)數(shù)據(jù)分析等其他領(lǐng)域也有較為廣泛的應(yīng)用。
繪制簡(jiǎn)單熱力圖(28)
  • 熱力圖是數(shù)據(jù)分析的常用方法,通過色差、亮度來展示數(shù)據(jù)的差異,易于理解。
import matplotlib.pyplot as plt
X = [[1,2],[3,4],[5,6],[7,8],[9,10]]
plt.imshow(X)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 上述代碼中,plt.imshow(X)中傳入的數(shù)組X=[[1,2],[3,4],[5,6],[7,8],[9,10]]為顏色的對(duì)應(yīng)值,按照矩陣X進(jìn)行顏色分布,如左上角顏色為深藍(lán),右下角顏色為黃色,其對(duì)應(yīng)值為10,具體如下:
[1,2] [深藍(lán),藍(lán)色]
[3,4] [藍(lán)綠,深綠]
[5,6] [海藻綠,春綠色]
[7,8] [綠色,淺綠色]
[9,10] [草綠色,黃色]
熱力圖對(duì)比分析學(xué)生各科成績(jī)(29)
  • 根據(jù)學(xué)生成績(jī)統(tǒng)計(jì)數(shù)據(jù)繪制熱力圖,通過熱力圖直觀地對(duì)比每名學(xué)生各科成績(jī)的高低。程序代碼如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data1.xls',sheet_name='高二一班')
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
X = df.loc[:,"語(yǔ)文":"生物"].values
name=df['姓名']
plt.imshow(X)
plt.xticks(range(0,6,1),['語(yǔ)文','數(shù)學(xué)','英語(yǔ)','物理','化學(xué)','生物'])#設(shè)置x軸刻度標(biāo)簽
plt.yticks(range(0,12,1),name)#設(shè)置y軸刻度標(biāo)簽
plt.colorbar()  #顯示顏色條
plt.title('學(xué)生成績(jī)統(tǒng)計(jì)熱力圖')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 從上圖可知,顏色以高亮顯示的,成績(jī)?cè)礁?;反之,成?jī)?cè)降汀?/li>

5.6.9 繪制箱形圖

  • 箱型圖又稱箱線圖、盒須圖或盒式圖,它是一種顯示一組數(shù)據(jù)分散情況下的資料的統(tǒng)計(jì)圖。因形狀像箱子而得名。箱形圖最大的優(yōu)點(diǎn)就是不受異常值的影響,可以以一種相對(duì)穩(wěn)定的方式描述數(shù)據(jù)的離散程度分布情況,因此在各種領(lǐng)域經(jīng)常被使用。另外,箱形圖也常用于異常值的識(shí)別。Matplotlib繪制箱型圖主要使用boxplot()函數(shù),語(yǔ)法如下:
matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positon=None,widths=None,patch_artist=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfiers=None,boxprops=None,labels=None,flierprops=None,medianprops=None,meanprops=None,capprops=None,whiskerprops=None)
  • x:指定要繪制箱型圖的數(shù)據(jù)
  • notch:是否以凹口的形式展現(xiàn)箱形圖,默認(rèn)非凹口
  • sym:指定異常點(diǎn)的形狀,默認(rèn)為加號(hào)(+)顯示
  • vert:是否需要將箱形圖垂直擺放,默認(rèn)垂直擺放
  • whis:指定上下限于與上下四分位的距離,默認(rèn)為1.5倍的四分位差。
  • position:指定箱形圖的位置,默認(rèn)為[0,1,2,…]
  • widths:指定箱形圖的寬度,默認(rèn)為0.5
  • patch_artist:是否填充箱體的顏色。
  • meanline:是否用線的形式表示均值,默認(rèn)用點(diǎn)來顯示。
  • showmeans:是否顯示均值,默認(rèn)不顯示
  • showcaps:是否顯示箱形圖頂端和末端的兩條線,默認(rèn)顯示。
  • showbox:是否顯示箱形圖的箱體,默認(rèn)顯示。
  • showfliers:是否顯示異常值,默認(rèn)顯示。
  • boxprops:設(shè)置箱體的屬性,如異常點(diǎn)的形狀、大小、填充色等。
  • medianprops:設(shè)置中位數(shù)的屬性,如線的類型、粗細(xì)等。
  • meanprops:設(shè)置均值的屬性,如點(diǎn)的大小、顏色等。
  • capprops:設(shè)置箱形圖頂端和末端線條的屬性,如顏色、粗細(xì)等。
  • whiskerprops:設(shè)置須的屬性,如顏色、粗細(xì)等。
繪制簡(jiǎn)單箱形圖(30)
import matplotlib.pyplot as plt
x=[1,2,3,5,7,9]
plt.boxplot(x)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

繪制多組數(shù)據(jù)的箱形圖(31)
  • 上述舉例是一組數(shù)據(jù)的箱形圖,還可以繪制多組數(shù)據(jù)的箱形圖,需要指定多組數(shù)據(jù)。例如,為三組數(shù)據(jù)繪制箱形圖,程序代碼如下:
import matplotlib.pyplot as plt
x1=[1,2,3,5,7,9]
x2=[10,22,13,15,8,19]
x3=[18,31,18,19,14,29]
plt.boxplot([x1,x2,x3])

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 箱形圖將數(shù)據(jù)切割分離(實(shí)際上就是將數(shù)據(jù)分為4大部分),如圖5.57所示。
    Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)
  • 下面介紹箱形圖每部分具體含義以及如何通過箱形圖識(shí)別異常值。
  • 下四分位:圖5.57中的下四分位數(shù)指的是數(shù)據(jù)的25%分位點(diǎn)所對(duì)應(yīng)的值(Q1)。計(jì)算分位數(shù)可以使用Pandas的quantile()函數(shù)。例如,Q1=df[‘總消費(fèi)’].quantile(q=0.25)。
  • 中位數(shù):中位數(shù)即為數(shù)據(jù)的50%分位點(diǎn)所對(duì)應(yīng)的值(Q2)
  • 上四分位數(shù):上四分位數(shù)則為數(shù)據(jù)的75%分位點(diǎn)所對(duì)應(yīng)的值(Q3)
  • 上限:上線的計(jì)算公式為Q3+1.5(Q3-Q1)
  • 下限:上線的計(jì)算公式為Q1-1.5(Q3-Q1)
  • 其中Q3-Q1表示四分位差。如果使用箱形圖識(shí)別異常值,其判斷標(biāo)準(zhǔn)是,當(dāng)變量的數(shù)據(jù)值大于箱形圖的上限或者小于箱形圖的下限時(shí),就可以將這樣的數(shù)據(jù)判定為異常值。
  • 下面了解以下判斷異常值的算法,如圖5.58所示。
    Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)
通過箱形圖判斷異常值(32)
  • 通過箱形圖查找客人總消費(fèi)數(shù)據(jù)中存在的異常值,程序代碼如下:
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_excel('tips.xlsx')
plt.boxplot(x = df['總消費(fèi)'], # 指定繪制箱線圖的數(shù)據(jù)
            whis = 1.5, # 指定1.5倍的四分位差
            widths = 0.3, #指定箱線圖中箱子的寬度為0.3
            patch_artist = True, #填充箱子顏色
            showmeans = True, #顯示均值
            boxprops = {'facecolor':'RoyalBlue'}, # 指定箱子的填充色為寶藍(lán)色
            flierprops = {'markerfacecolor':'red', 'markeredgecolor':'red', 'markersize':3}, # 指定異常值的填充色、邊框色和大小
            meanprops = {'marker':'h','markerfacecolor':'black', 'markersize':8},# 指定均值點(diǎn)的標(biāo)記符號(hào)(六邊形)、填充色和大小
            medianprops = {'linestyle':'--','color':'orange'}, # 指定中位數(shù)的標(biāo)記符號(hào)(虛線)和顏色
            labels = ['']) # 去除x軸刻度值

# 計(jì)算下四分位數(shù)和上四分位
Q1 = df['總消費(fèi)'].quantile(q = 0.25)
Q3 = df['總消費(fèi)'].quantile(q = 0.75)
# 基于1.5倍的四分位差計(jì)算上下限對(duì)應(yīng)的值
low_limit = Q1 - 1.5*(Q3 - Q1)
up_limit = Q3 + 1.5*(Q3 - Q1)
# 查找異常值
val=df['總消費(fèi)'][(df['總消費(fèi)'] > up_limit) | (df['總消費(fèi)'] < low_limit)]
print('異常值如下:')
print(val)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)
Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.6.9 繪制3D圖表

  • 3D圖表有立體感也比較美觀,看起來更加“高大上”。下面介紹兩種3D圖表,即三維柱形圖和三維曲面圖。
  • 繪制3D圖表,我們?nèi)允褂肕atplotlib,但需要安裝mpl_toolkits工具包,使用pip安裝命令:
pip install -upgrade matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 安裝好這個(gè)模塊后,即可調(diào)用mpl_tookits下的mplot3d類進(jìn)行3D圖表的繪制。
1. 3D柱形圖(33)
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np
fig = plt.figure()
axes3d = Axes3D(fig)
zs = [1, 5, 10, 15, 20]
for z in zs:
    x = np.arange(0, 10)
    y = np.random.randint(0, 30, size=10)
    axes3d.bar(x, y, zs=z, zdir='x', color=['r', 'green', 'yellow', 'c'])

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

2. 3D曲面圖(34)
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
delta = 0.125
# 生成代表X軸數(shù)據(jù)的列表
x = np.arange(-4.0, 4.0, delta)
# 生成代表Y軸數(shù)據(jù)的列表
y = np.arange(-3.0, 4.0, delta)
# 對(duì)x、y數(shù)據(jù)執(zhí)行網(wǎng)格化
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 計(jì)算Z軸數(shù)據(jù)(高度數(shù)據(jù))
Z = (Z1 - Z2) * 2
# 繪制3D圖形
ax.plot_surface(X, Y, Z,
    rstride=1,  # rstride(row)指定行的跨度
    cstride=1,  # cstride(column)指定列的跨度
    cmap=plt.get_cmap('rainbow'))  # 設(shè)置顏色映射
# 設(shè)置Z軸范圍
ax.set_zlim(-2, 2)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.6.10 繪制多個(gè)圖表

  • Matplotlib可以實(shí)現(xiàn)在一張圖表上繪制多個(gè)子圖表。Matplotlib提供了3種方法:一是subplot()函數(shù);二是subplots()函數(shù);三是add_subplots()函數(shù),下面分別介紹:
1.subplot()函數(shù)
  • subplot()函數(shù)直接指定劃分方式和位置,它可以將一個(gè)繪圖區(qū)域劃分為n個(gè)子圖,每個(gè)subplot()函數(shù)只能繪制一個(gè)子圖。語(yǔ)法如下:
matplotlib.pyplot.subplot(*args,**kwargs)
  • args:當(dāng)傳入的參數(shù)個(gè)數(shù)未知時(shí)使用args
  • **kwargs:關(guān)鍵字參數(shù),其他可選參數(shù)
  • 例如,繪制一個(gè)2x3的區(qū)域,subplot(2,3,3),將畫布分成2行3列在第3個(gè)區(qū)域中繪制,用坐標(biāo)表示如下:
(1,1),(1,2),(1,3)
(2,1),(2,2),(2,3)
  • 如果行列的值都小于10,那么可以把它們縮寫成一個(gè)整數(shù),如subplot(233)。
  • 另外,subplot()函數(shù)在指定的區(qū)域中創(chuàng)建一個(gè)軸對(duì)象,如果新創(chuàng)建的軸和之前所創(chuàng)建的軸重疊,那么,之前的軸將被刪除。
使用subplot()函數(shù)繪制多個(gè)子圖的空?qǐng)D表(35)
  • 繪制一個(gè)2x3包含6個(gè)子圖的空?qǐng)D表,程序代碼如下:
import matplotlib.pyplot as plt
plt.subplot(2,3,1)
plt.subplot(2,3,2)
plt.subplot(2,3,3)
plt.subplot(2,3,4)
plt.subplot(2,3,5)
plt.subplot(2,3,6)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

繪制包含多個(gè)子圖的圖表(36)
  • 通過上述舉例了解了subplot()函數(shù)的基本用法,接下來將前面所學(xué)的簡(jiǎn)單圖表整合到一張圖表上,結(jié)果如下圖所示:
import matplotlib.pyplot as plt
#第1個(gè)子圖表-折線圖
plt.subplot(2,2,1)
plt.plot([1, 2, 3, 4,5])
#第2個(gè)子圖表-散點(diǎn)圖
plt.subplot(2,2,2)
plt.plot([1, 2, 3, 4,5], [2, 5, 8, 12,18], 'ro')
#第3個(gè)子圖表-柱形圖
plt.subplot(2,1,2)
x=[1,2,3,4,5,6]
height=[10,20,30,40,50,60]
plt.bar(x,height)
Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)
圖5.65
  • 上述舉例,以下兩個(gè)關(guān)鍵點(diǎn)一定要掌握。
  • (1)每繪制一個(gè)子圖表都要調(diào)用一次subplot()函數(shù)
  • (2)繪圖區(qū)域位置編號(hào)
  • subplot()函數(shù)的前面兩個(gè)參數(shù)指定的是一個(gè)畫布被分割成的行數(shù)和列數(shù),后面一個(gè)參數(shù)則指的是當(dāng)前繪制區(qū)域位置編號(hào),編號(hào)規(guī)則是行優(yōu)先。
  • 例如,圖5.64中有3個(gè)子圖表,第1個(gè)子圖表subplot(2,2,1),即將畫布分成2行2列,在第1個(gè)子圖中繪制折線圖;第二子圖表subplot(2,2,2),將畫布分成2行2列,在第二個(gè)子圖中繪制散點(diǎn)圖;第3個(gè)子圖表subplot(2,1,2),將畫布分成2行1列,由于第1行已經(jīng)占用了,所以在第2行也就是第3個(gè)子圖中繪制柱形圖。示意圖如圖5.65所示。
    Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)
  • subplot()函數(shù)在畫布中繪圖時(shí),每次都要調(diào)用它指定繪圖區(qū)域非常麻煩,而subplots()函數(shù)則更直接,它會(huì)事先把畫布區(qū)域分割好。下面介紹subplots()函數(shù)。
2.subplots()函數(shù)
  • subplots()函數(shù)用于創(chuàng)建畫布和子圖,語(yǔ)法如下:
matplotlib.pyplot.subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)
  • nrows和ncols:表示將畫布分割成幾行幾列,例如,nrows=2、ncols=2表示將畫布分割成2行2列,起始值均為0。當(dāng)調(diào)用畫布中的坐標(biāo)軸時(shí),ax[0,0]表示調(diào)用左上角的坐標(biāo),ax[1,1]表示調(diào)用右下角的坐標(biāo)。
  • sharex和sharey:布爾值或者值為“none”“all”“row”“col”,默認(rèn)值為False。用于控制x或y軸之間的屬性共享。具體參數(shù)值說明如下。
    – True或者“all”:表示x或y軸屬性在所有子圖中共享。
    – False或者“none”:表示每個(gè)子圖的x或y軸都是獨(dú)立的部分。
    – row:表示每個(gè)子圖在一個(gè)x或y軸上共享行(row)
    – col:表示每個(gè)子圖在一個(gè)x或y軸上共享列(column)
  • squeeze:布爾值,默認(rèn)值為True,額外的維度從返回的axes(軸)對(duì)象中擠出,對(duì)應(yīng)nx1或1xn個(gè)子圖,返回一個(gè)一維數(shù)組,對(duì)于nxm,n>1和m>1返回一個(gè)二維數(shù)組;如果值為False,則表示不進(jìn)行擠壓操作,返回一個(gè)元素為Axes實(shí)例的二維數(shù)組,即使它最終是1x1
  • subplot_kw:字典類型,可選參數(shù)。把字典的關(guān)鍵字傳遞給add_subplot()函數(shù)來創(chuàng)建每個(gè)子圖。
  • gridspec_kw:字典類型,可選參數(shù)。把字典的關(guān)鍵字傳遞給GridSpec()構(gòu)造函數(shù)創(chuàng)建網(wǎng)格區(qū)域,然后將子圖放在網(wǎng)格(grid)里。
  • **fig_kw:把所有詳細(xì)的關(guān)鍵字參數(shù)傳遞給figure
使用subplots()函數(shù)繪制多子圖的空?qǐng)D表(37)
  • 繪制一個(gè)2x3包含6個(gè)子圖的空?qǐng)D表,使用subplots()函數(shù)只需3行代碼:
import matplotlib.pyplot as plt
figure,axes=plt.subplots(2,3)

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 上述代碼中,figure和axes是兩個(gè)關(guān)鍵點(diǎn)。
  • figure:繪制圖表的畫布。
  • axes:坐標(biāo)軸對(duì)象,可以理解為在figure(畫布)上繪制坐標(biāo)軸對(duì)象,它幫我們規(guī)劃出了一個(gè)科學(xué)作圖的坐標(biāo)軸系統(tǒng)。
  • 通過上面可以明白,外面的是畫布(figure),里面帶坐標(biāo)軸的是坐標(biāo)軸對(duì)象(axes)。
使用subplots()函數(shù)繪制多子圖圖表(38)
  • 使用subplots()函數(shù)將前面所學(xué)的簡(jiǎn)單圖表整合到一張圖表上,結(jié)果如圖所示:
import matplotlib.pyplot as plt
figure,axes=plt.subplots(2,2)
axes[0,0].plot([1, 2, 3, 4,5])  #折線圖
axes[0,1].plot([1, 2, 3, 4,5], [2, 5, 8, 12,18], 'ro')#散點(diǎn)圖
#柱形圖
x=[1,2,3,4,5,6]
height=[10,20,30,40,50,60]
axes[1,0].bar(x,height)
#餅形圖
x = [2,5,12,70,2,9]
axes[1,1].pie(x,autopct='%1.1f%%')

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

3.add_subplot()函數(shù)
  • add_subplot()函數(shù)也可以實(shí)現(xiàn)在一張圖上繪制多個(gè)子圖表,用法與subplot()基本相同,先來看下列一段代碼:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,3,1)
ax2 = fig.add_subplot(2,3,2)
ax3 = fig.add_subplot(2,3,3)
ax4 = fig.add_subplot(2,3,4)
ax5 = fig.add_subplot(2,3,5)
ax6 = fig.add_subplot(2,3,6)
  • 上述代碼同樣是繪制一個(gè)2x3包含6個(gè)子圖的空?qǐng)D表。首先創(chuàng)建一個(gè)figure實(shí)例(畫布),然后通過ax1=fig.add_subplot(2,3,1)創(chuàng)建第1個(gè)子圖表,返回Axes實(shí)例(坐標(biāo)軸對(duì)象),第1個(gè)參數(shù)為行數(shù),第2個(gè)參數(shù)為列數(shù),第3個(gè)參數(shù)為子圖表的位置。
  • 以上用3中方法實(shí)現(xiàn)了在一張圖上繪制多個(gè)子圖表,3中方法各有所長(zhǎng)。subplot()函數(shù)和add_subplot()函數(shù)比較靈活,定制化效果比較好,可以實(shí)現(xiàn)子圖表在圖中的各種布局(如一張圖上可以隨意擺放3個(gè)或5個(gè)圖表);而subplots()函數(shù)較為不靈活,但它可以用較少的代碼實(shí)現(xiàn)繪制多個(gè)子圖表。
5.6.11 圖表的保存
  • 實(shí)際工作中,有時(shí)需要將繪制的圖表保存為圖片放置到報(bào)告中。Matplotlib的savefig()函數(shù)可以實(shí)現(xiàn)這一功能,將圖表保存為JPEG、TIFF或PNG格式的圖片。
  • 例如,保存之前繪制的折線圖,主要代碼如下:
plt.savefig('image.png')
  • 需要注意一個(gè)關(guān)鍵問題,保存代碼必須在圖表預(yù)覽前,也就是plt.show()代碼前;否則保存后的圖片是白色,圖表無法保存。

5.7 綜合應(yīng)用

5.7.1 雙y軸可視化數(shù)據(jù)分析圖表的實(shí)現(xiàn)

  • 雙y軸顧名思義就是兩個(gè)y軸,其特點(diǎn)是通過雙y軸看出發(fā)展情況的同時(shí)還可以看到其增長(zhǎng)速度。對(duì)于產(chǎn)品而言,通過此圖可以看到產(chǎn)品銷量的同時(shí)還可以看到產(chǎn)品增長(zhǎng)率,效果如下:
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('mrbook.xlsx')                 #導(dǎo)入Excel文件
x=[1,2,3,4,5,6]
y1=df['銷量']
y2=df['rate']
fig = plt.figure()
plt.rcParams['font.sans-serif']=['SimHei']  #解決中文亂碼
plt.rcParams['axes.unicode_minus'] = False  #用來正常顯示負(fù)號(hào)
ax1 = fig.add_subplot(111)                  #添加子圖
plt.title('銷量情況對(duì)比')                   #圖表標(biāo)題
#圖表x軸標(biāo)題
plt.xticks(x,['1月','2月','3月','4月','5月','6月'])
ax1.bar(x,y1,label='銷量')
lin1=ax1.legend(('銷量',)) #設(shè)置圖例
ax1.set_ylabel('銷量(冊(cè))')            #y軸標(biāo)簽
ax2 = ax1.twinx()                       #共享x軸添加一條y軸坐標(biāo)軸
ax2.plot(x,y2,color='black',linestyle='--',marker='o',linewidth=2,label='增長(zhǎng)率')
ax2.set_ylabel('增長(zhǎng)率')
lin2=ax2.legend(('增長(zhǎng)率',))
for a,b in zip(x,y2):
    plt.text(a, b+0.02, '%.2f' % b, ha='center', va= 'bottom',fontsize=10,color='red')
plt.show()

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

5.7.2 顏色漸變餅形圖的實(shí)現(xiàn)

from matplotlib import font_manager as fm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.style.use('ggplot') #設(shè)置背景樣式,https://blog.csdn.net/qq_22592457/article/details/105636480
from  matplotlib import cm
#原始數(shù)據(jù)
shapes = ['天津', '江西省', '安徽省', '云南省', '福建省', '河南省', '遼寧省',
       '重慶', '湖南省', '四川省', '北京', '上海', '廣西壯族自治區(qū)', '河北省',
       '浙江省', '江蘇省', '湖北省', '山東省', '廣東省']
values = [287,383,842,866,1187,1405,1495,1620,1717,
          2313,2378,3070,4332,5841,6482,7785,9358,9818,20254]
explode=[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
s = pd.Series(values, index=shapes)
labels = s.index
sizes = s.values
fig, ax = plt.subplots(figsize=(6,6)) # 設(shè)置繪圖區(qū)域大小
# 繪制彩虹圖,https://blog.csdn.net/weixin_48964486/article/details/124144183
colors = cm.rainbow(np.arange(len(sizes))/len(sizes)) # 顏色地圖:秋天→彩虹→灰色→春天→黑色
patches, texts, autotexts = ax.pie(sizes, labels=labels, autopct='%1.0f%%',
        shadow=False, startangle=170, colors=colors)
ax.axis('equal')
ax.set_title('各地區(qū)線上圖書銷售占比圖',loc='left')
# 重新設(shè)置字體大小
proptease = fm.FontProperties()
# 字體大?。◤男〉酱螅?span id="n5n3t3z"    class="token punctuation">: xx-small、x-small、small、medium、large、x-large、xx-large,或者是數(shù)字,如18
proptease.set_size('small')
plt.setp(autotexts, fontproperties=proptease)
plt.setp(texts, fontproperties=proptease)
plt.show()

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)

  • 如果畫分裂餅形圖,可在本文搜索關(guān)鍵詞“分裂餅形圖”。
  • 顏色漸變主要使用了Matplotlib內(nèi)置顏色地圖模塊cm,在該模塊中指定一組數(shù)據(jù)可以生成多種顏色,由淺入深。例如,漸變藍(lán)色,cmap=plt.cm.Blues。

5.7.3 等高線圖的實(shí)現(xiàn)

  • 等高線圖是地理課中講述山峰山谷時(shí)繪制的圖形,在機(jī)器學(xué)習(xí)中也會(huì)被用在繪制梯度下降算法的圖形中。等高線圖實(shí)現(xiàn)結(jié)果如下圖所示:
import numpy as np
import matplotlib.pyplot as plt
# 計(jì)算x,y坐標(biāo)對(duì)應(yīng)的高度值
def f(x, y):
    return (1-x/2+x**5+y**3) * np.exp(-x**2-y**2)
# 生成x,y的數(shù)據(jù)
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
# 把x,y數(shù)據(jù)轉(zhuǎn)換為二維數(shù)據(jù)
X, Y = np.meshgrid(x, y)
# 填充等高線
plt.contourf(X, Y, f(X, Y))
# 顯示圖表
plt.show()

Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)文章來源地址http://www.zghlxwxcb.cn/news/detail-421950.html

  • 關(guān)鍵代碼解析:需畫出等高線,核心函數(shù)是Matplotlib的coutourf()函數(shù),但該函數(shù)中參數(shù)x和y對(duì)應(yīng)的值是二維數(shù)據(jù),因此需要使用NumPy的meshgrid()函數(shù)將x和y值轉(zhuǎn)換成二維數(shù)據(jù),代碼如下:
np.meshgrid(x,y)

5.8 小 節(jié)

  • 數(shù)據(jù)統(tǒng)計(jì)的再好都不如一張圖表清晰、直觀。本章用大量的舉例詳細(xì)地介紹了Matplotlib圖表,其根本在于能夠使讀者全面透徹地了解和掌握最基礎(chǔ)的圖表,并應(yīng)用到實(shí)際數(shù)據(jù)統(tǒng)計(jì)工作中,同時(shí)也為以后學(xué)習(xí)其他繪圖庫(kù)奠定堅(jiān)實(shí)的基礎(chǔ)。

到了這里,關(guān)于Matplotlib可視化數(shù)據(jù)分析圖表下(常用圖表的繪制、折線圖、柱形圖、直方圖、餅形圖、散點(diǎn)圖、面積圖、熱力圖、箱形圖、3D圖表、繪制多個(gè)圖表、雙y軸可視化圖表、顏色漸變圖)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 圖撲可視化圖表組件之股票數(shù)據(jù)分析應(yīng)用

    圖撲可視化圖表組件之股票數(shù)據(jù)分析應(yīng)用

    股市是市場(chǎng)經(jīng)濟(jì)的必然產(chǎn)物,在一個(gè)國(guó)家的金融領(lǐng)域之中有著舉足輕重的地位。在過去,人們對(duì)于市場(chǎng)走勢(shì)的把握主要依賴于經(jīng)驗(yàn)和直覺,往往容易受到主觀因素的影響,導(dǎo)致決策上出現(xiàn)偏差。如今,通過數(shù)據(jù)可視化呈現(xiàn),便可將歷年數(shù)據(jù)和市場(chǎng)情報(bào)進(jìn)行深度挖掘、分析,從

    2024年02月07日
    瀏覽(22)
  • 《PySpark大數(shù)據(jù)分析實(shí)戰(zhàn)》-26.數(shù)據(jù)可視化圖表Seaborn介紹

    《PySpark大數(shù)據(jù)分析實(shí)戰(zhàn)》-26.數(shù)據(jù)可視化圖表Seaborn介紹

    ?? 博主簡(jiǎn)介 ?? 作者簡(jiǎn)介:大家好,我是wux_labs。?? 熱衷于各種主流技術(shù),熱愛數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、云計(jì)算、人工智能。 通過了TiDB數(shù)據(jù)庫(kù)專員(PCTA)、TiDB數(shù)據(jù)庫(kù)專家(PCTP)、TiDB數(shù)據(jù)庫(kù)認(rèn)證SQL開發(fā)專家(PCSD)認(rèn)證。 通過了微軟Azure開發(fā)人員、Azure數(shù)據(jù)工程師、Azure解決

    2024年01月21日
    瀏覽(50)
  • 《PySpark大數(shù)據(jù)分析實(shí)戰(zhàn)》-27.數(shù)據(jù)可視化圖表Pyecharts介紹

    《PySpark大數(shù)據(jù)分析實(shí)戰(zhàn)》-27.數(shù)據(jù)可視化圖表Pyecharts介紹

    ?? 博主簡(jiǎn)介 ?? 作者簡(jiǎn)介:大家好,我是wux_labs。?? 熱衷于各種主流技術(shù),熱愛數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、云計(jì)算、人工智能。 通過了TiDB數(shù)據(jù)庫(kù)專員(PCTA)、TiDB數(shù)據(jù)庫(kù)專家(PCTP)、TiDB數(shù)據(jù)庫(kù)認(rèn)證SQL開發(fā)專家(PCSD)認(rèn)證。 通過了微軟Azure開發(fā)人員、Azure數(shù)據(jù)工程師、Azure解決

    2024年01月24日
    瀏覽(28)
  • python中的matplotlib畫餅圖(數(shù)據(jù)分析與可視化)

    python中的matplotlib畫餅圖(數(shù)據(jù)分析與可視化)

    1、先安裝pandas和matplotlib 2、然后在py文件中導(dǎo)入 3、然后直接寫代碼 效果圖(有圖有真相): 結(jié)束,不用謝!

    2024年02月13日
    瀏覽(30)
  • python中的matplotlib畫散點(diǎn)圖(數(shù)據(jù)分析與可視化)

    python中的matplotlib畫散點(diǎn)圖(數(shù)據(jù)分析與可視化)

    python中的matplotlib畫散點(diǎn)圖(數(shù)據(jù)分析與可視化) 效果圖: 結(jié)束,再見

    2024年02月11日
    瀏覽(96)
  • python中的matplotlib畫折線圖(數(shù)據(jù)分析與可視化)

    python中的matplotlib畫折線圖(數(shù)據(jù)分析與可視化)

    先導(dǎo)包(必須安裝了numpy 、pandas 和matplotlib才能導(dǎo)包): 核心代碼: 效果圖: 已完成,再見。

    2024年02月11日
    瀏覽(26)
  • python中的matplotlib畫直方圖(數(shù)據(jù)分析與可視化)

    python中的matplotlib畫直方圖(數(shù)據(jù)分析與可視化)

    python中的matplotlib畫直方圖(數(shù)據(jù)分析與可視化) 效果圖: 搞定,這只是一個(gè)小demo,數(shù)據(jù)是代碼生成的,您的數(shù)據(jù)可以從其他地方獲取。照葫蘆畫瓢。

    2024年02月11日
    瀏覽(27)
  • 微博數(shù)據(jù)可視化分析:利用Python構(gòu)建信息圖表展示話題熱度

    微博數(shù)據(jù)可視化分析:利用Python構(gòu)建信息圖表展示話題熱度

    1. 引言 隨著社交媒體的迅速發(fā)展,微博已成為人們交流觀點(diǎn)、表達(dá)情感的重要平臺(tái)之一。微博評(píng)論數(shù)據(jù)蘊(yùn)含著豐富的信息,通過對(duì)這些數(shù)據(jù)進(jìn)行分析和可視化,我們可以深入了解用戶對(duì)特定話題的關(guān)注程度和情感傾向。本文將介紹如何利用Python進(jìn)行微博評(píng)論數(shù)據(jù)的準(zhǔn)備、探索

    2024年02月20日
    瀏覽(35)
  • [數(shù)據(jù)分析與可視化] 基于matplotlib-scalebar庫(kù)繪制比例尺

    [數(shù)據(jù)分析與可視化] 基于matplotlib-scalebar庫(kù)繪制比例尺

    matplotlib-scalebar是一個(gè)Python庫(kù),用于在matplotlib圖形中添加比例尺。它允許用戶指定比例尺的大小、位置、字體和顏色,以及比例尺的單位。該庫(kù)支持不同的比例尺單位,例如米、英尺、英寸等。matplotlib-scalebar安裝命令如下: pip install matplotlib-scalebar 比例尺是一種用于描述圖上

    2024年02月11日
    瀏覽(28)
  • Python數(shù)據(jù)可視化:如何使用Matplotlib創(chuàng)建漂亮的圖表

    Python是一種易于學(xué)習(xí)的編程語(yǔ)言,很受數(shù)據(jù)科學(xué)家和分析師的青睞。Python的數(shù)據(jù)可視化庫(kù)Matplotlib是一種用于創(chuàng)建圖表的強(qiáng)大工具,可以幫助我們?cè)跀?shù)據(jù)分析中更好地理解和呈現(xiàn)數(shù)據(jù)。 在本文中,我們將介紹如何使用Matplotlib創(chuàng)建各種類型的圖表,包括折線圖、柱狀圖、散點(diǎn)圖

    2024年02月10日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包