最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用plt.bar柱狀圖減小柱子之間的間隔問題

 更新時(shí)間:2023年09月14日 16:01:51   作者:Bruce-XIAO  
這篇文章主要介紹了使用plt.bar柱狀圖減小柱子之間的間隔問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

plt.bar柱狀圖減小柱子之間的間隔

原始柱狀圖

    import matplotlib.pyplot as plt
    num_list = [1.5, 0.6, 7.8, 6]
    plt.bar(range(len(num_list)), num_list)
    plt.show()

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import MultipleLocator
taxinyc = {
    'gdc':{
        'rmse': {
            '16': 0.636,
            '32': 0.622,
            '64': 0.617,
            '128': 0.608
        },
        'mae': {
            '16': 0.159,
            '32': 0.153,
            '64': 0.152,
            '128': 0.151
        }
    },
    'scl':{
        'rmse': {
            '16': 0.604,
            '32': 0.608,
            '64': 0.607
        },
        'mae': {
            '16': 0.160,
            '32': 0.151,
            '64': 0.154
        }
    },
    'dcl':{
        'rmse': {
            '16': 0.612,
            '32': 0.608,
            '64': 0.610
        },
        'mae': {
            '16': 0.148,
            '32': 0.151,
            '64': 0.158
        }
    }
}
taxincd = {
    'gdc':{
        'rmse': {
            '16': 0.322,
            '32': 0.322,
            '64': 0.321,
            '128': 0.320
        },
        'mae': {
            '16': 0.117,
            '32': 0.116,
            '64': 0.115,
            '128': 0.119
        }
    },
    'scl':{
        'rmse': {
            '16': 0.324,
            '32': 0.322,
            '64': 0.321
        },
        'mae': {
            '16': 0.128,
            '32': 0.116,
            '64': 0.118
        }
    },
    'dcl':{
        'rmse': {
            '16': 0.321,
            '32': 0.322,
            '64': 0.396
        },
        'mae': {
            '16': 0.116,
            '32': 0.116,
            '64': 0.222
        }
    }
}
def plot_data(data,colors):
    for i,key1 in enumerate(data.keys()): #[gdc,scl,dcl]
        if i == 0:
            params = {
                'figure.figsize': '4, 4',
                'axes.unicode_minus':False
            }
            xx = [0., 0.7, 1.4, 2.1]
        else:
            params = {
                'figure.figsize': '3, 4',
                'axes.unicode_minus': False
            }
            xx = [0., 0.7, 1.4]
        plt.rcParams.update(params)
        for key2 in data[key1].keys(): #[rmse,mae']
            fig, ax = plt.subplots()
            hidden_dims = list(data[key1][key2].keys())
            values = list(data[key1][key2].values())
            x_center = [index + 0.3 for index in xx]
            plt.bar(xx, values, width=0.6, align='edge',color=colors)
            ax.spines['top'].set_visible(False)
            ax.spines['right'].set_visible(False)
            if key2 == 'rmse':
                yrange = 0.7
                ax.yaxis.set_major_locator(MultipleLocator(0.1))
            else:
                yrange = 0.18
                ax.yaxis.set_major_locator(MultipleLocator(0.03))
            plt.ylim(0.,yrange)  # y軸取值范圍
            plt.ylabel(str.upper(key2))
            plt.xticks(x_center, hidden_dims)  # 這兒的0.3是配合寬度0.6來的,是他的一半,目的是讓刻度線在柱子的中間
            # plt.xlabel("特征", labelpad=8.5)
            plt.axis('on')  # 增加這行關(guān)閉坐標(biāo)軸顯示,但仍有空白區(qū)域
            # plt.margins(0.1) 圖內(nèi)距離坐標(biāo)軸0.1
            plt.subplots_adjust(left=0.2) #整個(gè)圖距離畫布左邊距0.2,防止ylabel消失
            # 關(guān)鍵在于bbox_inches = 'tight',pad_inches = 0,去掉空白區(qū)域
            plt.savefig('result/{}_{}.png'.format(key1,key2), bbox_inches='tight', pad_inches=0)
            plt.show()
            plt.close(fig)
if __name__ == '__main__':
    colors = ['#35478C','#4E7AC7','#2FB2F0','#ADD5F7']
    plot_data(taxinyc,colors)
    # num_list = [1.5, 0.6, 7.8, 6]
    # plt.bar(range(len(num_list)), num_list)
    # plt.show()

效果圖:

折線圖版本

import numpy as np
import matplotlib.pyplot as plt
taxinyc = {
    'gdc':{
        'rmse': {
            '16': 0.636,
            '32': 0.622,
            '64': 0.617,
            '128': 0.608
        },
        'mae': {
            '16': 0.159,
            '32': 0.153,
            '64': 0.152,
            '128': 0.151
        }
    },
    'scl':{
        'rmse': {
            '16': 0.604,
            '32': 0.608,
            '64': 0.607
        },
        'mae': {
            '16': 0.160,
            '32': 0.151,
            '64': 0.154
        }
    },
    'dcl':{
        'rmse': {
            '16': 0.612,
            '32': 0.608,
            '64': 0.610
        },
        'mae': {
            '16': 0.148,
            '32': 0.151,
            '64': 0.158
        }
    }
}
taxicd = {
    'gdc':{
        'rmse': {
            '16': 0.322,
            '32': 0.322,
            '64': 0.321,
            '128': 0.320
        },
        'mae': {
            '16': 0.117,
            '32': 0.116,
            '64': 0.115,
            '128': 0.119
        }
    },
    'scl':{
        'rmse': {
            '16': 0.324,
            '32': 0.322,
            '64': 0.321
        },
        'mae': {
            '16': 0.128,
            '32': 0.116,
            '64': 0.118
        }
    },
    'dcl':{
        'rmse': {
            '16': 0.321,
            '32': 0.322,
            '64': 0.396
        },
        'mae': {
            '16': 0.116,
            '32': 0.116,
            '64': 0.222
        }
    }
}
t1=['16','32','64','128']
t2= [16,32,64]
mae = [0.159,0.153,0.152,0.151]
rmse = [0.148,0.151,0.158]
x1 = [0.5,1.0,1.5,2.0]
x2 = [0.5,1.0,1.5]
data = taxicd
figure,ax=plt.subplots(1,3,sharey=True,figsize=(12,4))
index = ['(a)','(b)','(c)']
for i,(idx,key1) in enumerate(zip(index,data.keys())):  # [gdc,scl,dcl]
    for key2 in ['mae']:  # [rmse,mae']
        hidden_dims = list(data[key1][key2].keys())
        values = list(data[key1][key2].values())
        title = idx + 'hidden units of ' + str.upper(key1)
        if i == 0:
            ax[i].plot(x1, values, 'ro--')
            ax[i].set_ylabel(str.upper(key2),fontdict={'fontsize':12})
            ax[i].set_xticks(x1)
            ax[i].set_xticklabels(hidden_dims,fontdict={'fontsize':12})
        else:
            ax[i].plot(x2, values, 'ro--')
            ax[i].set_xticks(x2)
            ax[i].set_xticklabels(hidden_dims,fontdict={'fontsize':12})
        ax[i].set_title(title,fontdict={'fontsize':12})
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
plt.savefig('./taxicd_line_graph_hidden_units.png', bbox_inches='tight', pad_inches=0.1)
figure.show()

plt.bar柱狀圖中如何改變每個(gè)柱子之間的間距

這是我的柱狀圖,因?yàn)橹g間距過窄導(dǎo)致數(shù)字?jǐn)D到了一起,我搜了很多解決間距的方法,但是并沒有針對我這個(gè)問題的解決辦法。。。

后來我才發(fā)現(xiàn)其實(shí)非常簡單:只用設(shè)置figsize的大小就好,figsize大了,間距自然就大了。

import matplotlib.pyplot as plt
# 設(shè)置figsize的大小
plt.figure(figsize=(15, 5), dpi=80)
# 畫柱狀圖,width可以設(shè)置柱子的寬度
plt.bar(np.array(x[flag]), np.array(np.sort(y)), width=0.7)
# 設(shè)置x軸字體的大小
plt.xticks(fontsize=12)
plt.show()

效果圖:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pytorch之torch_scatter.scatter_max()用法

    pytorch之torch_scatter.scatter_max()用法

    這篇文章主要介紹了pytorch之torch_scatter.scatter_max()用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python基于Opencv實(shí)現(xiàn)人臉口罩檢測

    python基于Opencv實(shí)現(xiàn)人臉口罩檢測

    最近嘗試做一個(gè)python基于Opencv實(shí)現(xiàn)人臉口罩檢測,記錄一下過程,稍微整理精簡一下做下分享,需要的小伙伴可以參考下
    2021-06-06
  • Python可視化學(xué)習(xí)之seaborn調(diào)色盤

    Python可視化學(xué)習(xí)之seaborn調(diào)色盤

    seaborn是在matplotlib基礎(chǔ)上封裝的,所以matplotlib的調(diào)色盤seaborn都可以使用。本文系統(tǒng)介紹seaborn調(diào)色盤,相較于matplotlib,有諸多不同,需要的可以參考一下
    2022-02-02
  • python列表反轉(zhuǎn)的4種方法

    python列表反轉(zhuǎn)的4種方法

    本文主要介紹了python列表反轉(zhuǎn)的4種方法,包括reverse()方法、reversed()函數(shù)、切片語法和for循環(huán),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Python實(shí)現(xiàn)批量將CSV按行或按列拆分

    Python實(shí)現(xiàn)批量將CSV按行或按列拆分

    這篇文章主要介紹了一個(gè)基于Python標(biāo)準(zhǔn)庫csv和PyQt5的高性能CSV拆分工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • python分布式庫celery處理大規(guī)模的任務(wù)并行化

    python分布式庫celery處理大規(guī)模的任務(wù)并行化

    Python中的分布式任務(wù)隊(duì)列時(shí),Celery是一個(gè)備受推崇的工具,它是一個(gè)功能強(qiáng)大的分布式系統(tǒng),可用于處理大規(guī)模的任務(wù)并行化,本文將介紹Celery的基本概念、用法和示例代碼,幫助讀者更好地了解和使用這個(gè)庫
    2024-01-01
  • python實(shí)現(xiàn)得到一個(gè)給定類的虛函數(shù)

    python實(shí)現(xiàn)得到一個(gè)給定類的虛函數(shù)

    這篇文章主要介紹了python實(shí)現(xiàn)得到一個(gè)給定類的虛函數(shù)的方法,以wx的PyPanel類為例講述了打印以base_開頭的方法的實(shí)例,需要的朋友可以參考下
    2014-09-09
  • 完美解決在oj中Python的循環(huán)輸入問題

    完美解決在oj中Python的循環(huán)輸入問題

    今天小編就為大家分享一篇完美解決在oj中Python的循環(huán)輸入問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 解決Pyinstaller打包軟件失敗的一個(gè)坑

    解決Pyinstaller打包軟件失敗的一個(gè)坑

    這篇文章主要介紹了解決Pyinstaller打包軟件失敗的一個(gè)坑,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 詳解python中init方法和隨機(jī)數(shù)方法

    詳解python中init方法和隨機(jī)數(shù)方法

    這篇文章主要介紹了python中init方法和隨機(jī)數(shù)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

专栏| 历史| 会泽县| 鹰潭市| 靖远县| 三都| 长垣县| 阿城市| 赞皇县| 长葛市| 瓦房店市| 靖远县| 吕梁市| 铁力市| 浏阳市| 孟连| 准格尔旗| 清水河县| 崇阳县| 八宿县| 东乡| 康乐县| 水富县| 义马市| 武平县| 嘉荫县| 临漳县| 汶川县| 赣州市| 顺平县| 巴青县| 休宁县| 大埔区| 南乐县| 盘锦市| 德昌县| 卓资县| 合山市| 房山区| 治县。| 普定县|