校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Python數據可視化之用Matplotlib繪制常用圖形

Python數據可視化之用Matplotlib繪制常用圖形

熱門標簽:小蘇云呼電話機器人 儋州電話機器人 朝陽手機外呼系統 市場上的電銷機器人 地圖標注面積 北瀚ai電銷機器人官網手機版 北京電銷外呼系統加盟 所得系統電梯怎樣主板設置外呼 佛山400電話辦理

一、散點圖

散點圖用兩組數據構成多個坐標點,考察坐標點的分布,判斷兩變量之間是否存在某種關聯總結坐標點的分布模式。
特點:判斷變量之間是否存在數量關聯趨勢,表示離群點的分布規律。

散點圖繪制

plt.scatter(x,y) # 以默認的形狀顏色繪制散點圖

實例: 假設我們獲取到了上海2020年5,10月份每天白天的最高氣溫(分別位于列表a、b),那么此時如何觀察氣溫和隨時間變化的某種規律。

# 繪制圖形所需的數據
y_5 = [11,17,16,11,12,11,12,13,10,14,8,13,12,15,14,17,18,21,16,17,30,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,15,10,11,13,12,13,6]

代碼如下:

import matplotlib.pyplot as plt

# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

plt.figure(figsize=(12,5), dpi=100)

y_5 = [11,17,16,11,12,11,12,13,10,14,8,13,12,15,14,17,18,21,16,17,30,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,15,10,11,13,12,13,6]
x = range(1, 32)

plt.scatter(x, y_5, label='五月份')
plt.scatter(x, y_10, label='十月份')

# 增加標題,坐標描述
plt.xlabel("時間")
plt.ylabel("日期")
plt.title("氣溫和隨時間變化的某種規律")

# 添加圖形注釋
plt.legend(loc='best')

plt.show()

上圖雖然繪制出5、10月氣溫隨日期的變化,但兩者混在一起,不便于觀察,現通過修改x數據,將10月的坐標點集體往坐標軸右側移動,改進的代碼如下:

import matplotlib.pyplot as plt

# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

plt.figure(figsize=(12,5), dpi=100)

y_5 = [11,17,16,11,12,11,12,13,10,14,8,13,12,15,14,17,18,21,16,17,30,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,15,10,11,13,12,13,6]
x_5 = range(1, 32)
x_10 = range(33, 64)

plt.scatter(x_5, y_5, label='五月份')
plt.scatter(x_10, y_10, label='十月份')

# 刻度顯示
x_t = list(x_4)+list(x_10)
x_l = ["5月{}號".format(i) for i in x_4]
x_l += ["10月{}號".format(i-31) for i in x_10]
plt.xticks(x_t[::3], x_l[::3], rotation=45)

# 添加圖形注釋
plt.legend(loc='best')

plt.show()

二、柱狀圖

柱狀圖是用寬度相同的條形的高度或長短來表示數據多少的圖形。柱狀圖可以橫置或縱置,縱置時也稱為柱形圖。

特點

能夠直觀反映出各個數據的大?。?br /> 易于比較數據之間的差別。

柱狀圖繪制

plt.bar(x, width, align=‘center', **kwargs)

Parameters:    
x : sequence of scalars.

width : scalar or array-like, optional, 柱狀圖的寬度

align: {‘center', ‘edge'}, optional, default: ‘center'
Alignment of the bars to the x coordinates:
‘center': Center the base on the x positions.
‘edge': Align the left edges of the bars with the x positions.
每個柱狀圖的位置對齊方式, 默認柱狀圖的中心與x坐標中心對齊

**kwargs:
color: 選擇柱狀圖的顏色

水平條形圖繪制

plt.barh(y, width) # 繪制以y為y軸位置的水平條形圖

實例:假設我們獲取到了2019年內地電影票房前20的電影(列表a)和電影票房數據(列表b),繪制柱狀圖直觀地展示數據,代碼如下:

import matplotlib.pyplot as plt
# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

plt.figure(figsize=(15,10),dpi=100)
# 準備電影的名字以及電影的票房數據
movie_name = ["流浪地球","復仇者聯盟4:終局之戰","哪吒之魔童降世","瘋狂的外星人",
              "飛馳人生","蜘蛛俠:英雄遠征","掃毒2天地對決","烈火英雄","大黃蜂",
              "驚奇隊長","比悲傷更悲傷的故事","哥斯拉2:怪獸之王","阿麗塔:戰斗天使",
              "銀河補習班","獅子王","反貪風暴4","熊出沒","大偵探皮卡丘","新喜劇之王",
              "使徒行者2:諜影行動","千與千尋"]
y = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,
11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23,5.22]
# 放進橫坐標的數字列表
x = range(len(movie_name))

# 畫出條形圖
# 顏色color參數表示條形圖的順序顏色,可循環
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','g'])

# 修改刻度名稱,并旋轉90度
plt.xticks(x, movie_name, rotation=90)

# 展示圖形
plt.show()

# 水平條形圖
plt.figure(figsize=(15,10),dpi=100)
plt.barh(movie_name, y, color=['b','r','g','y','c','m','k'])
plt.show()

有時候為了公平起見,我們需要對比不同電影首日和首周的票房收入,讓數據更有說服力。假設數據如下:

movie_name = ['雷神3:諸神黃昏','正義聯盟','尋夢環游記']
first_day = [10587.6,10062.5,1275.7] # 首日票房
first_weekend=[36224.9,34479.6,11830] # 首周票房

繪制不同電影首日和首周票房的數據圖,代碼如下:

import matplotlib.pyplot as plt
# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

plt.figure(figsize=(15,10),dpi=100)
# 準備數據
movie_name = ['雷神3:諸神黃昏','正義聯盟','尋夢環游記']

# 構造首日票房,首周票房數據
first_day = [10587.6,10062.5,1275.7]
first_weekend=[36224.9,34479.6,11830]
x = range(len(movie_name))

# 繪制第一個柱狀圖
plt.bar(x, first_day, width=0.25)
# 接著繪制第二個柱狀圖
plt.bar([i+0.25 for i in x], first_weekend, width=0.25)

# 修改刻度名稱
# 顯示x軸中文,固定在首日和首周的中間位置
plt.xticks([i+0.125 for i in x], movie_name)

plt.show()

注意點

x軸坐標刻度顯示位置的調整,既可以通過繪制圖形時調整x數據,也可以通過繪制x軸刻度時調整刻度的方法來實現x軸刻度顯示在兩個柱狀圖中間。如果不做任何調整,它是默認與第一個柱狀圖中間對齊的。

三、直方圖

直方圖,形狀類似柱狀圖卻有著與柱狀圖完全不同的含義。直方圖牽涉統計學的概念,首先要對數據進行分組,然后統計每個分組內數據元的數量。 在坐標系中,橫軸標出每個組的端點,縱軸表示頻數,每個矩形的高代表對應的頻數,稱這樣的統計圖為頻數分布直方圖。

特點:繪制連續性的數據,展示一組或者多組數據的分布情況,用于統計數據分布的特征。

相關概念

組數:在統計數據時,把數據按照不同的范圍分成幾個組,分成的組的個數稱為組數;
組距:每一組兩個端點的差。

直方圖繪制

plt.hist(x,bins=None)
繪制以x為數值,bins為組數,組數 = 極差/組距

實例:假設我們獲取到了一些電影的時長,繪制直方圖展示電影時長的分布情況,代碼如下:

import matplotlib.pyplot as plt
# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

plt.figure(figsize=(15,10),dpi=100)
# 準備數據,電影時長
time =[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 
       135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 
       127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 
       115,  99, 136, 126, 134,  95, 138, 117, 111, 78, 
       132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 
       126, 130,126, 130, 126, 116, 123, 106, 112, 138, 
       123,  86, 101,  99, 136,123, 117, 119, 105, 137, 
       123, 128, 125, 104, 109, 134, 125, 127,105, 120, 
       107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 
       114,105, 115, 132, 145, 119, 121, 112, 139, 125, 
       138, 109, 132, 134,156, 106, 117, 127, 144, 139, 
       139, 119, 140,  83, 110, 102,123,107, 143, 115, 
       136, 118, 139, 123, 112, 118, 125, 109, 119, 133, 
       112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 
       118, 112, 135,115, 146, 137, 116, 103, 144,  83, 
       123, 111, 110, 111, 100, 154,136, 100, 118, 119, 
       133, 134, 106, 129, 126, 110, 111, 109, 141, 120, 
       117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 
       125, 126,114, 140, 103, 130, 141, 117, 106, 114, 
       121, 114, 133, 137,  92,121, 112, 146,  97, 137, 
       105,  98, 117, 112,  81,  97, 139, 113,134, 106, 
       144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 
       110, 105, 129, 137, 112, 120, 113, 133, 112,  83, 
       94, 146, 133, 101, 131, 116, 111, 84, 137, 115, 
       122, 106, 144, 109, 123, 116, 111,111, 133, 150]

# 組距
bins = 2
# 組數,極差/組距
groups = int((max(time) - min(time)) / 2)

# 繪制直方圖
plt.hist(time, groups)

# 指定x軸刻度的范圍
plt.xticks(list(range(min(time), max(time)))[::2])

# 添加坐標描述
plt.xlabel('電影時長大小')
plt.ylabel('電影的數量')

# 增加網格顯示
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()

四、扇形圖

扇形圖,用整個圓表示總數,用圓內各個扇形的大小表示各部分數量占總數的百分數。

扇形圖繪制

plt.pie(x, explode=None, labels=None)

x:扇形數據
explode:設置某幾個分塊是否要分離餅圖
labels:每塊扇形標簽
autopct:百分比數據標簽
shadow:是否顯示陰影
plt.pie()有3個返回值:
patches:繪制餅圖每一塊的對象
texts:文本的列表
autotexts:百分比的文本列表

實例:假設我們獲取到了一些電影的排片數據,繪制扇形圖展示電影的排片占比情況,代碼如下:

import matplotlib.pyplot as plt
# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

# 餅圖繪制
plt.figure(figsize=(15, 10), dpi=100)
# 電影排片數據
movie_name = ['雷神3:諸神黃昏','正義聯盟','東方快車謀殺案','尋夢環游記','全球風暴','降魔傳','追捕','七十七天','密戰','狂獸','其它']
place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105]

# 繪制扇形圖
plt.pie(place_count, labels=movie_name, autopct="%1.2f%%")

# 指定顯示的pie是正圓
plt.axis('equal')

# 設置圖例和標題
plt.legend(loc="best")
plt.title("排片占比情況")

plt.show()

扇形圖優化的手段添加陰影,分離特定數據等:

import matplotlib.pyplot as plt
# 設置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標軸負數的負號顯示問題

plt.figure(figsize=(15, 10), dpi=100)
movie_name = ['雷神3:諸神黃昏','正義聯盟','東方快車謀殺案','尋夢環游記','全球風暴','降魔傳','追捕','七十七天','密戰','狂獸','其它']
place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105]

# 繪制扇形圖,添加陰影效果,并讓占比最大的雷神3分離
explode = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
res = plt.pie(place_count, labels=movie_name, explode=explode, autopct="%1.2f%%", shadow=True)
patches, texts, autotexts = res
print(patches)  # 表示每個扇形的對象
print(texts)  # 每個文本對象
print(autotexts)  # 每個百分比對象

# 指定顯示的pie是正圓
plt.axis('equal')

# 設置圖例和標題
plt.legend(loc="best")
plt.title("排片占比情況")

plt.show()

打印的扇形圖返回值:

優化后的扇形圖:

總結

本文講述了使用Matplotlib繪制散點圖、柱狀圖、直方圖、扇形圖的基本操作。

到此這篇關于Python數據可視化之用Matplotlib繪制常用圖形的文章就介紹到這了,更多相關Matplotlib繪制圖形內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 利用Python進行數據可視化的實例代碼
  • python數據可視化之matplotlib.pyplot基礎以及折線圖
  • 淺談哪個Python庫才最適合做數據可視化
  • python數據可視化plt庫實例詳解
  • 學會Python數據可視化必須嘗試這7個庫
  • Python中seaborn庫之countplot的數據可視化使用
  • python實現股票歷史數據可視化分析案例
  • Python數據可視化之基于pyecharts實現的地理圖表的繪制
  • Python爬蟲實戰之爬取京東商品數據并實實現數據可視化
  • Python數據可視化之繪制柱狀圖和條形圖
  • python用pyecharts實現地圖數據可視化
  • python數據可視化 – 利用Bokeh和Bottle.py在網頁上展示你的數據

標簽:定西 金融催收 龍巖 江蘇 商丘 云南 寧夏 酒泉

巨人網絡通訊聲明:本文標題《Python數據可視化之用Matplotlib繪制常用圖形》,本文關鍵詞  Python,數據,可視化,之用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python數據可視化之用Matplotlib繪制常用圖形》相關的同類信息!
  • 本頁收集關于Python數據可視化之用Matplotlib繪制常用圖形的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    7777精品伊人久久久大香线蕉经典版下载 | 国产精品污www在线观看| 国产欧美日韩在线| 天堂久久一区二区三区| 成人丝袜18视频在线观看| 欧美一区二区三区成人| 一区二区三区在线视频免费观看| 国产另类ts人妖一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品动漫网站| 久久国产精品无码网站| 91官网在线免费观看| 国产午夜精品久久久久久免费视 | 精品一区二区三区在线播放视频| 在线看国产日韩| 久久久久97国产精华液好用吗| 日韩成人一级片| 欧美三级电影一区| 亚洲乱码中文字幕综合| 成人免费毛片app| 国产日韩精品一区二区浪潮av| 青娱乐精品视频| 欧美日本国产一区| 亚洲成人综合网站| 在线观看不卡一区| 一区二区三区不卡视频| 91麻豆国产香蕉久久精品| 国产精品传媒在线| 99久免费精品视频在线观看| 国产视频不卡一区| 国产精品一二二区| 中文欧美字幕免费| 成人av中文字幕| **性色生活片久久毛片| 97久久精品人人澡人人爽| 亚洲欧洲av色图| 色呦呦网站一区| 一区二区三区鲁丝不卡| 欧美一a一片一级一片| 午夜国产精品影院在线观看| 欧美挠脚心视频网站| 日韩在线一区二区三区| 欧美一级二级在线观看| 极品美女销魂一区二区三区 | 成人免费毛片嘿嘿连载视频| 中文字幕一区二区三区不卡| 91看片淫黄大片一级| 亚洲一二三四区| 91麻豆精品国产91久久久使用方法 | 亚洲女人的天堂| 欧美日韩亚洲高清一区二区| 奇米四色…亚洲| 国产三级一区二区| 色综合天天狠狠| 日本sm残虐另类| 国产欧美日韩不卡| 91亚洲精品乱码久久久久久蜜桃| 一区二区三区色| 日韩欧美专区在线| 成人a区在线观看| 午夜伦欧美伦电影理论片| 久久久久久日产精品| 91麻豆福利精品推荐| 理论片日本一区| 日韩一区在线看| 91麻豆精品91久久久久久清纯| 国产一区二区91| 亚洲激情av在线| 久久综合九色欧美综合狠狠| 99国产麻豆精品| 免费在线看成人av| 亚洲婷婷综合色高清在线| 日韩一区二区免费在线观看| 91亚洲男人天堂| 国产尤物一区二区| 性久久久久久久| 亚洲色欲色欲www在线观看| 精品国一区二区三区| 色综合久久中文字幕| 国产盗摄一区二区| 蜜臀av亚洲一区中文字幕| 亚洲色图第一区| 精品国产髙清在线看国产毛片 | 99久久国产免费看| 麻豆91在线播放| 亚洲激情男女视频| 国产精品午夜久久| 精品久久久久久无| 欧美精品第一页| 91污在线观看| 播五月开心婷婷综合| 经典三级一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产麻豆视频精品| 天堂在线亚洲视频| 亚洲夂夂婷婷色拍ww47 | 欧美视频三区在线播放| 91丨九色丨蝌蚪丨老版| 国产盗摄视频一区二区三区| 精品亚洲porn| 久久av老司机精品网站导航| 日韩av成人高清| 亚洲aaa精品| 午夜久久电影网| 亚洲午夜电影在线观看| 亚洲国产一区二区视频| 夜夜精品浪潮av一区二区三区| 国产精品免费久久| 国产精品丝袜在线| 国产精品国产三级国产普通话蜜臀| 久久亚洲免费视频| 国产午夜一区二区三区| 亚洲国产电影在线观看| 国产偷国产偷亚洲高清人白洁| 欧美成人女星排行榜| 欧美精品一区二区蜜臀亚洲| 精品国产第一区二区三区观看体验| 日韩精品最新网址| 久久综合五月天婷婷伊人| 久久先锋影音av| 国产欧美一区二区三区网站 | 久久精品一区二区三区不卡牛牛| 欧美变态凌虐bdsm| 国产丝袜美腿一区二区三区| 国产亚洲污的网站| 最新热久久免费视频| 一区二区三区四区不卡在线| 一区二区国产盗摄色噜噜| 亚洲国产精品久久艾草纯爱| 日本美女一区二区| 激情综合网天天干| 不卡电影一区二区三区| 欧美亚洲高清一区| 精品国产一区二区三区久久久蜜月| 久久久综合视频| 国产精品初高中害羞小美女文| 一区二区视频免费在线观看| 亚洲成在人线免费| 国产美女在线观看一区| 色综合久久综合网| 欧美本精品男人aⅴ天堂| 国产精品色在线| 午夜电影网一区| 国产成人精品在线看| 色94色欧美sute亚洲线路一ni| 欧美麻豆精品久久久久久| 久久精品无码一区二区三区| 亚洲日本欧美天堂| 免费在线观看一区二区三区| 成人精品小蝌蚪| 欧美久久久久免费| 国产精品丝袜一区| 婷婷久久综合九色综合伊人色| 国内精品国产三级国产a久久| 91日韩精品一区| 亚洲精品在线三区| 一区二区三区**美女毛片| 狠狠色丁香久久婷婷综合_中| 91亚洲国产成人精品一区二三| 欧美精品在线观看播放| 国产精品女主播av| 麻豆久久久久久| 在线视频国内自拍亚洲视频| 久久久亚洲精品一区二区三区| 亚洲国产一二三| 99久久99久久精品免费看蜜桃| 日韩色在线观看| 亚洲毛片av在线| 成人国产一区二区三区精品| 欧美一激情一区二区三区| 一区二区不卡在线播放| 国产91色综合久久免费分享| 欧美成人video| 蜜臀va亚洲va欧美va天堂| 99vv1com这只有精品| 国产欧美一区二区精品秋霞影院 | 日韩无一区二区| 亚洲香肠在线观看| 一本到不卡免费一区二区| 久久蜜臀中文字幕| 久久99精品久久久| 67194成人在线观看| 亚洲自拍另类综合| 91久久国产最好的精华液| 国产精品国产三级国产aⅴ入口| 国产成人免费视频网站| 久久久久久亚洲综合影院红桃 | 91啪九色porn原创视频在线观看| 国产亚洲一区二区在线观看| 激情久久五月天| 久久婷婷国产综合精品青草 | 国产欧美日韩视频在线观看| 韩国女主播一区二区三区| 精品久久一区二区三区| 老司机精品视频一区二区三区| 91精品视频网| 老司机精品视频导航| 精品欧美黑人一区二区三区| 久久99国内精品| 久久综合色之久久综合|