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

python數(shù)據(jù)分析-matplotlib散點(diǎn)圖-條形圖的繪制以及完整方法歸納02

這篇具有很好參考價(jià)值的文章主要介紹了python數(shù)據(jù)分析-matplotlib散點(diǎn)圖-條形圖的繪制以及完整方法歸納02。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.散點(diǎn)圖的繪制

散點(diǎn)圖的繪制使用的是scatter()方法,傳入的參數(shù)也是兩個(gè)列表,分別為x,y坐標(biāo)軸的值使用散點(diǎn)圖可以顯示若干數(shù)列序列中各數(shù)值之間是否存在相關(guān)性.

二.散點(diǎn)圖繪圖步驟及案例解析

1.導(dǎo)入模塊

from matplotlib import pyplot as plt
import matplotlib

2.設(shè)置散點(diǎn)圖所有字符的字體樣式

matplotlib.rcParams[‘font.family’] = ‘Microsoft Yahei’ # 字體樣式

3.編寫(xiě)主體代碼

from matplotlib import pyplot as plt
import matplotlib

matplotlib.rcParams['font.family'] = 'Microsoft Yahei'  # 字體樣式


def draw():
    x = [30.1, 29.9, 29.9, 28.1, 28.1, 27.7, 27.6, 27.0, 26.5, 26.4, 26.0,
         25.5, 24.6, 24.5, 24.4, 23.4, 23.2, 22.4,
         21.6,
         21.3, 21.2, 21.0, 20.6, 20.4, 20.3, 20.3, 20.1, 20.1, 20.0, 19.4,
         18.6, 18.2, 18.2, 18.2, 18.1, 18.1, 18.1,
         18.1,
         18.0, 17.9, 17.6, 17.4, 17.3, 17.3, 17.2, 17.1, 17.1, 16.9, 16.7,
         16.7]

    y = [52.3, 55.2, 48.9, 45.9, 45.7, 50.3, 49.3, 45.1, 58.0, 46.1, 45.3,
         43.7, 47.9, 45.3, 52.9, 46.8, 47.3, 49.3,
         46.5,
         47.6, 46.3, 43.6, 44.3, 44.6, 49.0, 40.8, 41.1, 41.2, 42.5, 44.1,
         50.5, 46.0, 45.2, 44.0, 54.2, 48.0, 41.0,
         45.8,
         40.8, 50.1, 48.3, 41.5, 44.3, 47.9, 63.8, 46.3, 45.2, 39.2, 46.8,
         39.3]
    z = ['勒布朗-詹姆斯', '揚(yáng)尼斯-阿德托昆博', '喬爾-恩比德', '特雷-楊', '盧卡-東契奇', '德馬爾 - 德羅贊',
         '賈 - 莫蘭特', '杰森 - 塔特姆', '尼古拉 - 約基奇', '德文 - 布克', '多諾萬(wàn)-米切爾',
         '斯蒂芬-庫(kù)里', '扎克-拉文', '謝伊-吉爾杰斯-亞歷山大', '卡爾-安東尼-唐斯',
         '杰倫-布朗', '達(dá)龍-??怂?, '帕斯卡爾-西亞卡姆', '達(dá)里厄斯-加蘭', '吉米-巴特勒', '德章泰-默里',
         '安東尼-愛(ài)德華茲', '泰勒-希羅', '克里斯-米德?tīng)栴D', '邁爾斯-布里奇斯', '弗雷德 - 范弗利特',
         '朱利葉斯 - 蘭德?tīng)?, 'RJ - 巴雷特', '拉梅洛 - 鮑爾', '特里 - 羅齊爾', '朱 - 霍勒迪',
         '德斯蒙德-貝恩', '喬丹-普爾', '拉塞爾-威斯布魯克', '約納斯-瓦蘭丘納斯', '尼古拉 - 武切維奇',
         '小加里 - 特倫特', '博揚(yáng) - 波格丹諾維奇', '丹吉洛 - 拉塞爾', '克里斯蒂安 - 伍德',
         '托拜厄斯-哈里斯', '凱德-坎寧安', '安芬尼-西蒙斯', '泰雷斯-馬克西', '德安德烈 - 艾頓',
         '安德魯 - 威金斯', '凱爾 - 庫(kù)茲馬', '雷吉 - 杰克遜', '哈里森 - 巴恩斯', '科爾 - 安東尼']
    # 繪制圖像
    plt.figure(figsize=(16, 8), dpi=80)
    # 將數(shù)據(jù)繪制到散點(diǎn)圖上
    plt.scatter(x, y)
    plt.title('NBA2021-2022賽季球員得分榜前50名命名率散點(diǎn)圖', color='red',fontsize=23)  # 添加標(biāo)題
    plt.xlabel('分?jǐn)?shù)', color='green', fontsize=16)  # 添加x軸文字
    plt.ylabel('命名率: %', color='green', fontsize=16)  # 添加y軸文字

    x_ticks = x[::-1]  # 得到升序的分?jǐn)?shù)
    # 添加x軸的刻度內(nèi)容
    plt.xticks(x_ticks[::5] + [max(x)], rotation=45)  # 按照步長(zhǎng)為5拿內(nèi)容, 再將最后的一個(gè)數(shù)字放進(jìn)去

    y_ticks = range(int(min(y)), int(max(y)) + 1)  # 得到命中率的升序
    # 添加xy軸的刻度內(nèi)容
    plt.yticks(y_ticks[::4])  # 將y軸的刻度內(nèi)容展現(xiàn)出來(lái)
    # 將姓名放到圖當(dāng)中付出
    n = 0
    for i, j in zip(x, y):  # 迭代兩個(gè)列表
        # x軸坐標(biāo) y軸坐標(biāo) 姓名 字體大小
        plt.text(i - 0.5, j + 0.4, z[n], fontsize='10')
        n += 1
    # 將圖展示出來(lái)
    plt.show()


draw()

4.主題代碼解析

for i, j in zip(x, y): # 迭代兩個(gè)列表
# x軸坐標(biāo) y軸坐標(biāo) 姓名 字體大小
plt.text(i - 0.5, j + 0.4, z[n], fontsize=‘10’)
n += 1
這段代碼主要是給每一個(gè)點(diǎn)都寫(xiě)上它的標(biāo)識(shí),這里的zip是matplotlib的一種迭代方法,它可以配合for循環(huán)迭代,將兩個(gè)列表的對(duì)應(yīng)元素打包成一個(gè)個(gè)的元組,然后返回有這些元組組成的列表
[(),(),(),(),(),(),(),()],里面使用text方法把各個(gè)元組對(duì)應(yīng)的點(diǎn)的標(biāo)識(shí)添加上去,上面-0.5和+0.4是因?yàn)橛行┰M對(duì)應(yīng)坐標(biāo)點(diǎn)在我們繪制圖的范圍外.

5.圖形展示

python數(shù)據(jù)分析-matplotlib散點(diǎn)圖-條形圖的繪制以及完整方法歸納02

三.條形圖的繪制

使用bar方法,條形圖用來(lái)比較各獨(dú)立類(lèi)別下的某單獨(dú)數(shù)據(jù)的大小
plt.bar(x, height, width)
x: 數(shù)據(jù)的個(gè)數(shù), 可以數(shù)字, 也可以是range對(duì)象
height: 要繪制的數(shù)據(jù)
width: 表示柱狀的寬度, 默認(rèn)為0.8

四.條形圖案例展示

例: 勒布朗.詹姆斯職業(yè)生涯常規(guī)賽平均數(shù)據(jù)條形圖

1.導(dǎo)入模塊

from matplotlib import pyplot as plt
import matplotlib

五.繪制條形圖完整代碼

def main():
    # 每賽季的平均得分
    height = [20.9, 27.2, 31.4, 27.3, 30.0, 28.4, 29.7, 26.7, 27.1,
              26.8, 27.1, 25.3, 25.3, 26.4, 27.5, 27.4, 25.3, 25.0,
              30.1]
    # 生涯平均得分
    avg = sum(height) / len(height)
    # 繪制圖像
    plt.figure(figsize=(16, 9), dpi=80)
    # 將數(shù)據(jù)繪制到柱狀圖上
    plt.bar(range(len(height)), height, width=0.4)
    # 將生涯平均得分畫(huà)一條折線圖
    plt.plot(range(len(height)), [avg for i in range(len(height))],
             color='red')
    # 添加標(biāo)題
    plt.title('勒布朗.詹姆斯職業(yè)生涯常規(guī)賽平均數(shù)據(jù)條形圖', color='red',
              fontsize=23)
    # 添加x軸文字
    plt.xlabel('賽季', color='green', fontsize=16)
    # 添加y軸文字
    plt.ylabel('分?jǐn)?shù)', color='green', fontsize=16)
    # 生成x軸內(nèi)容的列表
    x_ticks = ['%d-%d賽季' % (i, i + 1) for i in range(2003, 2022)]
    # 添加x軸的刻度內(nèi)容
    plt.xticks(range(len(height)), x_ticks, rotation=30)
    # 得到一個(gè)range對(duì)象, 起始值是分?jǐn)?shù)最小值, 結(jié)束值是分?jǐn)?shù)是大值, 同時(shí)得把最大值包含進(jìn)去
    y_ = range(int(min(height)), int(max(height)) + 2)  # 得到命中率的升序
    y_ticks = ['%d分' % i for i in y_]  # 生成分?jǐn)?shù)的列表內(nèi)容
    plt.yticks(y_[::2], y_ticks[::2])  # 將y軸的刻度內(nèi)容展現(xiàn)出來(lái)
    # 展示風(fēng)格
    plt.grid(alpha=0.3)
    # 將圖展示出來(lái)
    plt.show()


main()

grid是設(shè)置背景網(wǎng)格的透明度(0-1)

六.條形圖展示

python數(shù)據(jù)分析-matplotlib散點(diǎn)圖-條形圖的繪制以及完整方法歸納02

七.多個(gè)條形圖展示

例: 勒布朗.詹姆斯/凱文.杜蘭特職業(yè)生涯常規(guī)賽平均數(shù)據(jù)對(duì)比條形圖

from matplotlib import pyplot as plt
import matplotlib  # 載入matplotlib完整庫(kù)

matplotlib.rcParams['font.family'] = 'Microsoft Yahei'  # 字體,改為微軟雅黑,默認(rèn) sans-serif


def main():
    # 詹姆斯
    height1 = [20.9, 27.2, 31.4, 27.3, 30.0, 28.4, 29.7, 26.7, 27.1, 26.8,
               27.1, 25.3, 25.3, 26.4, 27.5, 27.4, 25.3, 25.0, 30.3]
    # 杜蘭特
    height2 = [20.3, 25.3, 30.1, 27.7, 28.0, 28.1, 32.0, 25.4, 28.2, 25.1,
               26.4, 26.4, 26.0, 26.9, 29.6]
    # 庫(kù)里
    height3 = [30, 50.3, 50.1, 47.7, 48.0, 58.1, 62.0, 55.4, 78.2, 45.1,
               54, 56.4, 56.0, 56.9, 59.6, 54.8, 52.6, 62.5, 71.3]

    # 繪制圖像
    plt.figure(figsize=(16, 9), dpi=80)
    # 將數(shù)據(jù)繪制到柱狀圖上
    # 從x軸不斷往右來(lái)添加數(shù)據(jù), 同時(shí)在原有位置上往右挪0.4
    plt.bar([i for i in range(len(height1))], height1, width=0.2,
            color='red', label='勒布朗.詹姆斯')
    plt.bar([i+0.2 for i in range(len(height2))], height2, width=0.2,
            color='green', label='凱文.杜蘭特')
    plt.bar([i + 0.4 for i in range(len(height3))], height3, width=0.2,
            color='blue', label='史蒂芬.庫(kù)里')
    # 添加標(biāo)題
    plt.title('勒布朗.詹姆斯/凱文.杜蘭特/史蒂芬.庫(kù)里職業(yè)生涯常規(guī)賽平均數(shù)據(jù)對(duì)比條形圖',
              color='red', fontsize=23)
    # 添加x軸文字
    plt.xlabel('賽季', color='green', fontsize=16)
    # 添加y軸文字
    plt.ylabel('分?jǐn)?shù)', color='green', fontsize=16)
    # 生成x軸內(nèi)容的列表
    x_ticks = ['第%d個(gè)賽季' % (i + 1) for i in range(len(height1))]
    # 添加x軸的刻度內(nèi)容
    plt.xticks(range(len(height1)), x_ticks, rotation=30)
    # 得到一個(gè)range對(duì)象, 起始值是分?jǐn)?shù)最小值, 結(jié)束值是分?jǐn)?shù)是大值, 同時(shí)得把最大值包含進(jìn)去
    y_ = range(int(min(height1)), int(max(height1)) + 2)  # 得到命中率的升序
    y_ticks = ['%d分' % i for i in y_]  # 生成分?jǐn)?shù)的列表內(nèi)容
    plt.yticks(y_[::4], y_ticks[::4])  # 將y軸的刻度內(nèi)容展現(xiàn)出來(lái)
    # 展示風(fēng)格
    plt.grid(alpha=0.3)
    # 展示圖例
    plt.legend()
    # 將圖展示出來(lái)
    plt.show()


main()

1.結(jié)果展示

python數(shù)據(jù)分析-matplotlib散點(diǎn)圖-條形圖的繪制以及完整方法歸納02

八.總結(jié)

本篇文章主要是為了通過(guò)案例的形式,去熟悉matplotlib庫(kù)里面的實(shí)例方法,再者條形圖散點(diǎn)圖以及上篇文章折線圖,其實(shí)他們的主要步驟是一樣的,我們只需要記憶并且熟悉他們不相同的地方,達(dá)到事半功倍的效果,希望本篇文章能夠給你帶來(lái)幫助,感謝支持!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-410543.html

到了這里,關(guān)于python數(shù)據(jù)分析-matplotlib散點(diǎn)圖-條形圖的繪制以及完整方法歸納02的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包