色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python數據可視化:類別比較圖表可視化

jf_Vqngj70R ? 來源:美男子玩編程 ? 作者:美男子玩編程 ? 2022-11-15 15:09 ? 次閱讀

在學習本篇博文之前請先看一看之前發過的關聯知識:

Python數據可視化:如何選擇合適的圖表可視化?

根據表達數據的側重內容點,將圖表類型分為6大類:類別比較圖表、數據關系圖表、數據分布圖表、時間序列圖表、局部整體圖表和地理空間圖表(有些圖表也可以歸類于兩種或多種圖表類型)。

本篇將介紹類別比較圖表的可視化方法。

類別比較型圖表的數據一般分為:數值型和類別型兩種數據類型,主要包括:柱形圖、條形圖、雷達圖、詞云圖等,通常用來比較數據的規模。如下所示:

e016fbd8-649a-11ed-8abf-dac502259ad0.png

1

柱狀圖

柱形圖是一種以長方形的長度為變量的統計圖表。柱形圖用于顯示一段時間內的數據變化或顯示各項之間的比較情況。

在柱形圖中,類別型或序數型變量映射到橫軸的位置,數值型變量映射到矩形的高度。控制柱形圖的兩個重要參數是:“系列重疊"和“分類間距”。

  • “分類間距"控制同一數據系列的柱形寬度;

  • “系列重疊"控制不同數據系列之間的距離。

下圖為常見的柱形圖類型:單數據系列柱形圖、多數據系列柱形圖、堆積柱形圖和百分比堆積柱形圖。

e05c82a2-649a-11ed-8abf-dac502259ad0.png

1.1、單數據系列柱形圖

通過一個示例了解單數據系列柱形圖的使用,實現代碼如下所示:

mydata = pd.DataFrame({'Cut': ["Fair", "Good", "Very Good", "Premium", "Ideal"],
                       'Price': [4300, 3800, 3950, 4700, 3500]})


Sort_data = mydata.sort_values(by='Price', ascending=False)


fig = plt.figure(figsize=(6, 7), dpi=70)
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
plt.grid(axis="y", c=(217/256, 217/256, 217/256))  # 設置網格線
# 將網格線置于底層
ax = plt.gca()  # 獲取邊框
ax.spines['top'].set_color('none')  # 設置上‘脊梁’為紅色
ax.spines['right'].set_color('none')  # 設置上‘脊梁’為無色
ax.spines['left'].set_color('none')  # 設置上‘脊梁’為無色


plt.bar(Sort_data['Cut'], Sort_data['Price'],
        width=0.6, align="center", label="Cut")


plt.ylim(0, 6000)  # 設定x軸范圍
plt.xlabel('Cut')
plt.ylabel('Price')
plt.show()

	

效果如下所示:

e081bb26-649a-11ed-8abf-dac502259ad0.png

1.2、多數據系列柱形圖

通過一個示例了解多數據系列柱形圖的使用,實現代碼如下所示:


	
x_label = np.array(df["Catergory"])
x = np.arange(len(x_label))
y1 = np.array(df["1996"])
y2 = np.array(df["1997"])


fig = plt.figure(figsize=(5, 5))
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)  # 設置繪圖區域大小位置


plt.bar(x, y1, width=0.3, color='#00AFBB', label='1996', edgecolor='k',
        linewidth=0.25)  # 調整y1軸位置,顏色,label為圖例名稱,與下方legend結合使用
plt.bar(x+0.3, y2, width=0.3, color='#FC4E07', label='1997',
        edgecolor='k', linewidth=0.25)  # 調整y2軸位置,顏色,label為圖例名稱,與下方legend結合使用
plt.xticks(x+0.15, x_label, size=12)  # 設置x軸刻度,位置,大小


# 顯示圖例,loc圖例顯示位置(可以用坐標方法顯示),ncol圖例顯示幾列,默認為1列,frameon設置圖形邊框
plt.legend(loc=(1, 0.5), ncol=1, frameon=False)


plt.yticks(size=12)  # 設置y軸刻度,位置,大小
plt.grid(axis="y", c=(217/256, 217/256, 217/256))  # 設置網格線
# 將y軸網格線置于底層
# plt.xlabel("Quarter",labelpad=10,size=18,)                          #設置x軸標簽,labelpad設置標簽距離x軸的位置
# plt.ylabel("Amount",labelpad=10,size=18,)                                   #設置y軸標簽,labelpad設置標簽距離y軸的位置




ax = plt.gca()  
ax.spines['top'].set_color('none')  # 設置上‘脊梁’為無色
ax.spines['right'].set_color('none')  # 設置右‘脊梁’為無色
ax.spines['left'].set_color('none')  # 設置左‘脊梁’為無色


plt.show()

	

效果如下所示:

e09a4de4-649a-11ed-8abf-dac502259ad0.png

1.3、堆積柱形圖

通過一個示例了解堆積柱形圖的使用,實現代碼如下所示:


		
# -*- coding: utf-8 -*-
# %%
import pandas as pd
import numpy as np
from plotnine import *




mydata = pd.DataFrame(dict(Name=['A', 'B', 'C', 'D', 'E'],
                           Scale=[35, 30, 20, 10, 5],
                           ARPU=[56, 37, 63, 57, 59]))


# 構造矩形X軸的起點(最小點)
mydata['xmin'] = 0
for i in range(1, 5):
    mydata['xmin'][i] = np.sum(mydata['Scale'][0:i])


# 構造矩形X軸的終點(最大點)
mydata['xmax'] = 0
for i in range(0, 5):
    mydata['xmax'][i] = np.sum(mydata['Scale'][0:i+1])


mydata['label'] = 0
for i in range(0, 5):
    mydata['label'][i] = np.sum(mydata['Scale'][0:i+1])-mydata['Scale'][i]/2


base_plot = (ggplot(mydata) +
             geom_rect(aes(xmin='xmin', xmax='xmax', ymin=0, ymax='ARPU', fill='Name'), colour="black", size=0.25) +
             geom_text(aes(x='label', y='ARPU+3', label='ARPU'), size=14, color="black") +
             geom_text(aes(x='label', y=-4, label='Name'), size=14, color="black") +
             scale_fill_hue(s=0.90, l=0.65, h=0.0417, color_space='husl') +
             ylab("ARPU") +
             xlab("scale") +
             ylim(-5, 80) +
             theme(  # panel_background=element_rect(fill="white"),
    #panel_grid_major = element_line(colour = "grey",size=.25,linetype ="dotted" ),
    #panel_grid_minor = element_line(colour = "grey",size=.25,linetype ="dotted" ),
    text=element_text(size=15),
    legend_position="none",
    aspect_ratio=1.15,
    figure_size=(5, 5),
    dpi=100
))
print(base_plot)

2

條形圖

條形圖與柱形圖類似,幾乎可以表達相同多的數據信息

在條形圖中,類別型或序數型變量映射到縱軸的位置,數值型變量映射到矩形的寬度。條形圖的柱形變為橫向,從而導致與柱形圖相比,條形圖更加強調項目之間的大小對比。尤其在項目名稱較長以及數量較多時,采用條形圖可視化數據會更加美觀、清晰,如下圖所示:

e139e822-649a-11ed-8abf-dac502259ad0.png

2.1、單數據系列條形圖

通過一個示例了解單數據系列條形圖的使用,實現代碼如下所示:


		
df = pd.read_csv('Stackedbar_Data.csv')


df = df.sort_values(by='Pensions', ascending=True)


df['Country'] = pd.Categorical(df['Country'], categories=df['Country'], ordered=True)
df


# %%
base_plot = (ggplot(df, aes('Country', 'Pensions')) +
             # "#00AFBB"
             geom_bar(stat="identity", color="black", width=0.6, fill="#FC4E07", size=0.25) +

實現效果如下所示:

e1547b56-649a-11ed-8abf-dac502259ad0.png

2.2、多數據系列條形圖

通過一個示例了解多數據系列條形圖的使用,實現代碼如下所示:


			
df = pd.read_csv('Stackedbar_Data.csv')

效果如下所示:

e17e22da-649a-11ed-8abf-dac502259ad0.png

2.3、堆積條形圖

通過一個示例了解堆積條形圖的使用,實現代碼如下所示:

df = pd.read_csv('Stackedbar_Data.csv')
Sum_df = df.iloc[nonedisplay: none;'>

e1986816-649a-11ed-8abf-dac502259ad0.png

2.4、百分比堆積條形圖

通過一個示例了解百分比堆積條形圖的使用,實現代碼如下所示:

df = pd.read_csv('Stackedbar_Data.csv')

							

效果如下所示:

e1faa5bc-649a-11ed-8abf-dac502259ad0.png

4

詞云圖

詞云圖通過使每個字的大小與其出現頻率成正比,顯示不同單詞在給定文本中的出現頻率,這會過濾掉大量的文本信息,使瀏覽者只要一眼掃過文本就可以領略文本的主旨。

詞云圖會將所有的字詞排在一起,形成云狀圖案,也可以任何格式排列:水平線、垂直列或其他形狀,也可用于顯示獲分配元數據的單詞。如下圖所示:

e33cfb5a-649a-11ed-8abf-dac502259ad0.png每個圓圈表示一個數值刻度,而徑向分隔線(從中心延伸出來的線)則用于區分不同類別或間隔(如果是直方圖)。刻度上較低的數值通常由中心點開始,然后數值會隨著每個圓形往外增加,但也可以把任何外圓設為零值,這樣里面的內圓就可用來顯示負值。條形通常從中心點開始向外延伸,但也可以以別處為起點,顯示數值范圍(如跨度圖)。

此外,條形也可以如堆疊式條形圖般堆疊起來,如下圖所示:

e3d8bd60-649a-11ed-8abf-dac502259ad0.png

8

熱力圖

熱力圖是一種通過對色塊著色來顯示數據的統計圖表,繪圖時需指定顏色映射的規則。例如,較大的值由較深的顏色表示,較小的值由較淺的顏色表示;較大的值由偏暖的顏色表示,較小的值由較冷的顏色表示等。

通過一個示例了解熱力圖的使用,實現代碼如下所示:

import numpy as np
import pandas as pd
from plotnine import *
from plotnine.data import mtcars


mat_corr = np.round(mtcars.corr(), 1).reset_index()
mydata = pd.melt(mat_corr, id_vars='index', var_name='var', value_name='value')
mydata


# %%
base_plot = (ggplot(mydata, aes(x='index', y='var', fill='value', label='value')) +
             geom_tile(colour="black") +
             geom_text(size=8, colour="white") +
             scale_fill_cmap(name='RdYlBu_r') +
             coord_equal() +
             theme(dpi=100, figure_size=(4, 4)))
print(base_plot)


# %%
mydata['AbsValue'] = np.abs(mydata.value)


base_plot = (ggplot(mydata, aes(x='index', y='var', fill='value', size='AbsValue')) +
             geom_point(shape='o', colour="black") +
             # geom_text(size=8,colour="white")+
             scale_size_area(max_size=11, guide=False) +
             scale_fill_cmap(name='RdYlBu_r') +
             coord_equal() +
             theme(dpi=100, figure_size=(4, 4)))
print(base_plot)


# %%
base_plot = (ggplot(mydata, aes(x='index', y='var', fill='value', size='AbsValue')) +
             geom_point(shape='s', colour="black") +
             # geom_text(size=8,colour="white")+
             scale_size_area(max_size=10, guide=False) +
             scale_fill_cmap(name='RdYlBu_r') +
             coord_equal() +
             theme(dpi=100, figure_size=(4, 4)))
print(base_plot)

							

效果如下所示:

e3f754d2-649a-11ed-8abf-dac502259ad0.png

e41ddce2-649a-11ed-8abf-dac502259ad0.png

e4472886-649a-11ed-8abf-dac502259ad0.png


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 可視化
    +關注

    關注

    1

    文章

    1197

    瀏覽量

    20966
  • 圖表
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8871
  • python
    +關注

    關注

    56

    文章

    4798

    瀏覽量

    84801

原文標題:Python數據可視化:類別比較圖表可視化

文章出處:【微信號:美男子玩編程,微信公眾號:美男子玩編程】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是大屏數據可視化?特點有哪些?

    介紹: 特點 直觀易懂:大屏數據可視化通過圖表、圖形和其他可視化元素,將復雜的數據轉化為直觀易懂的形式,使得用戶無需深入挖掘
    的頭像 發表于 12-16 16:59 ?213次閱讀

    如何找到適合的大屏數據可視化系統

    選擇合適的大屏數據可視化系統是企業或組織在數字轉型過程中至關重要的一步。一個優秀的大屏數據可視化系統能夠實時呈現關鍵業務
    的頭像 發表于 12-13 15:47 ?135次閱讀

    Minitab 數據可視化技巧

    數據分析領域,數據可視化是一種將數據以圖形或圖像的形式展示出來的技術,它可以幫助我們更直觀地理解數據,發現
    的頭像 發表于 12-02 15:40 ?354次閱讀

    智慧能源可視化監管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現能
    的頭像 發表于 11-29 10:00 ?374次閱讀
    智慧能源<b class='flag-5'>可視化</b>監管平臺——助力<b class='flag-5'>可視化</b>能源<b class='flag-5'>數據</b>管理

    智慧樓宇可視化的優點

    監控與管理:智慧樓宇可視化系統可以實時監測樓宇各項數據指標,包括能耗、水量、空氣質量、安全等情況,讓管理者隨時了解樓宇運行狀態,及時發現問題并做出調整。 2.數據可視化呈現:通過
    的頭像 發表于 11-19 14:25 ?193次閱讀

    大屏數據可視化 開源

    在當今信息爆炸的時代,數據已經成為各個行業決策制定和業務發展的關鍵。為了更直觀、準確地理解和利用海量數據, 大屏數據可視化 成為一種強大的工具。通過將
    的頭像 發表于 06-27 16:06 ?419次閱讀
    大屏<b class='flag-5'>數據</b><b class='flag-5'>可視化</b> 開源

    如何實現園區大屏可視化

    如何實現園區大屏可視化? 1.建立孿生模型:首先需要建立園區的孿生模型,即一個數字的虛擬模型,反映了園區的實際情況、結構、設備、人員等信息。這個模型可以通過傳感器、監控設備、GIS 數據等實時獲取和更新,確保與實際情況保持
    的頭像 發表于 06-19 15:39 ?444次閱讀
    如何實現園區大屏<b class='flag-5'>可視化</b>?

    物聯網時代,為什么需要可視化數據大屏

    效率、能耗水平等信息,從而合理優化并采取措施,促進企業的數字轉型。 由于人類大腦對視覺信息的處理優于對文本的處理,因此使用圖表、圖形和設計元素把數據進行可視化,可以幫助更容易的了解
    的頭像 發表于 06-18 13:53 ?398次閱讀
    物聯網時代,為什么需要<b class='flag-5'>可視化</b><b class='flag-5'>數據</b>大屏

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將數據以圖形、圖像、動畫等視覺形式展現出來的技術,特別是在處理和分析態勢數據時,該技術能夠將復雜的數據
    的頭像 發表于 06-11 15:47 ?386次閱讀

    智慧大屏是如何實現數據可視化的?

    智慧大屏,作為數據可視化的重要載體,已在城市管理、交通監控、商業運營等領域廣泛應用。本文旨在闡述智慧大屏實現數據可視化的關鍵技術和方法,包括數據
    的頭像 發表于 06-04 15:02 ?633次閱讀
    智慧大屏是如何實現<b class='flag-5'>數據</b><b class='flag-5'>可視化</b>的?

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺手段將數據呈現出來,以
    的頭像 發表于 06-03 17:56 ?692次閱讀

    大屏數據可視化是什么?運用了什么技術

    大屏數據可視化 是一種利用大屏幕設備展示數據可視化結果的技術,旨在以更生動、直觀的方式呈現數據信息。這種
    的頭像 發表于 05-24 15:35 ?881次閱讀

    數據可視化:企業數字建設效果的呈現

    數據可視化即通過圖表的形式將數據的內在信息有邏輯性地呈現給用戶,使用戶更容易發現數據中蘊藏的規律,找出問題,進而做出決策;另一方面,
    的頭像 發表于 04-29 10:18 ?474次閱讀
    <b class='flag-5'>數據</b><b class='flag-5'>可視化</b>:企業數字<b class='flag-5'>化</b>建設效果的呈現

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將復雜、動態的態勢數據以直觀、易于理解的方式展現出來的技術手段。以下是幾種主要的態勢數據可視化技術: 網
    的頭像 發表于 04-22 15:17 ?420次閱讀
    主站蜘蛛池模板: 大香网伊人久久综合网2020| 国色精品VA在线观看免费视频| 夜色55夜色66亚洲精品网站| 学校女性奴sm训练调教| 羞羞答答的免费视频在线观看| 亚洲AV国产福利精品在现观看 | 0951影音在线| FREEXXX性乌克兰XXX| 成人欧美一区二区三区白人| 给个男人都懂的网址2019| 国产午夜免费视频片夜色| 寂寞夜晚在线视频观看| 久久婷五月综合色啪网| 欧美黑人经典片免费观看| 日本高清无人区影院| 无码任你躁久久久久久久| 一本大道手机在线看| 97人人爽人人爽人人人片AV| 俄罗斯6一12呦女精品| 国产欧美一区二区三区久久| 久久4k岛国高清一区二区| 农民下乡在线观看3| 十8禁用B站在线看漫画| 亚洲精品九色在线网站| 2021精品国产综合久久| 爆操日本美女| 国产午夜在线观看视频 | china野外18:19| 国产AV亚洲一区精午夜麻豆| 国产在线精品亚洲视频在线| 美女被爽cao免费漫画| 色琪琪无码成人AV视频| 亚洲中文字幕永久在线全国| 99久久久国产精品免费调教| 国产精品久久久久成人免费| 久久久影院亚洲精品| 日本一二三区在线视频| 亚洲日韩KKK444KKK聚色| av狼新人开放注册区| 国产三级在线观看免费| 免费被靠视频动漫|