App下載

python如何設(shè)置柱狀圖參數(shù)?matplotlib 繪制柱狀圖參數(shù)詳解

猿友 2021-07-21 10:06:29 瀏覽數(shù) (5025)
反饋

柱狀圖是一種可以簡單的比對(duì)數(shù)據(jù)間差異的一種統(tǒng)計(jì)圖,在日常的數(shù)據(jù)分析中應(yīng)用是相當(dāng)廣泛的,在python中也可以使用matplotlib繪制柱狀圖,不過很多小伙伴在使用matplotlib的時(shí)候會(huì)覺得matplotlib柱狀圖參數(shù)的設(shè)置有點(diǎn)復(fù)雜。那么今天小編就來介紹一下python matplotlib如何設(shè)置柱狀圖參數(shù)吧!

version:python 3.6

環(huán)境:anaconda/JupyterLab 0.27.0

操作系統(tǒng):Windows 10

import pandas as pd
import matplotlib.pyplot as plt
a = pd.DataFrame(train_set['收率'].value_counts()).reset_index()
a.rename(columns={'index': 'yield','收率':'frequency'}, inplace=True)
a.head()
plt.figure(figsize=(24,8))
plt.bar(a['yield'].values,a['frequency'].values.round(2),color='rgb',width = 0.005,
tick_label=a['yield'].values.round(3))
plt.xlabel('yield', fontsize=20)
plt.ylabel('frequency', fontsize=20)
plt.show()

運(yùn)行結(jié)果

補(bǔ)充:python 用 matplotlib 繪制柱狀圖參數(shù)詳解 plt.bar()

1、加載庫

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

2 繪圖,逐步設(shè)置 bar() 參數(shù)

def title_table(ax):
    '''為圖表添加標(biāo)題和表格'''
    ax.set_title(label=f'No.{i+1}',
                loc='center',
                pad=None,
                fontdict={'color': 'b'}
                 )
    ax.table(loc='upper right',    # 表格在圖表區(qū)的位置
          
          colLabels=[f'{i+2} args'],    # 表格每列的列名稱
          colColours=['g'],    # 表格每列列名稱所在單元格的填充顏色
          colLoc='left',    # 表格中每列列名稱的對(duì)齊位置
          colWidths=[0.15],    # 表格每列的寬度         
          cellText=args,    # 表格中的數(shù)值, 每行數(shù)據(jù)的列表的列表
          cellColours=[['cornsilk']]*len(args),    # 表格中數(shù)據(jù)所在單元格的填充顏色
          cellLoc='left',    # 表格中數(shù)據(jù)的對(duì)齊位置
          fontsize=8)
# 配置字體,顯示中文
mpl.rcParams['font.sans-serif'] = ['SimHei']  
# 配置坐標(biāo)軸刻度值模式,顯示負(fù)號(hào)
mpl.rcParams['axes.unicode_minus'] = True
# 定義數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y = [6, 10, 4, 5, 1]
labels = list('ABCDE')
                   
fig, axes = plt.subplots(nrows=3,
                         ncols=3,
                         sharex=True,
                         sharey=True,
                         figsize=(18, 20),
                         facecolor='cornsilk')
axes = axes.ravel()
i = 0
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
       )
args = [[e] for e in ['x', 'height']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 1
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
       )
args = [[e] for e in ['x', 'height', 'align']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 2
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
        color='c',    # 柱體的填充顏色
        )
args = [[e] for e in ['x', 'height', 'align', 'color']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 3
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)齊的位置
        color='cyan',    # 柱體的填充顏色
        tick_label=labels,    # 每個(gè)柱體的標(biāo)簽名稱
        )
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 4
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
        color='blue',    # 柱體的填充顏色
        tick_label=labels,    # 每個(gè)柱體的標(biāo)簽名稱
        alpha=0.6    # 柱體填充顏色的透明度
        )
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 5
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
        color='wheat',    # 柱體的填充顏色
        tick_label=labels,    # 每個(gè)柱體的標(biāo)簽名稱
        alpha=0.6,    # 柱體填充顏色的透明度
        width=1,  # 柱體的寬度
        )
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 6
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
        color='aqua',    # 柱體的填充顏色
        tick_label=labels,    # 每個(gè)柱體的標(biāo)簽名稱
        alpha=0.6,    # 柱體填充顏色的透明度
        width=0.8,    # 柱體的寬度
        bottom=0.2,     # 柱體基線的 y 軸坐標(biāo)
        )
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width',
                      'bottom']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 7
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='edge',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
        color='lightpink',    # 柱體的填充顏色
        tick_label=labels,    # 每個(gè)柱體的標(biāo)簽名稱
        alpha=0.6,    # 柱體填充顏色的透明度
        width=0.8,    # 柱體的寬度
        bottom=0.2,    # 柱體基線的 y 軸坐標(biāo)
        edgecolor='g'   # 柱體的邊框顏色
        )
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width',
                      'bottom', 'edgecolor']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 8
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x,    # 柱體在 x 軸上的坐標(biāo)位置
        height=y,    # 柱體的高度
        align='center',    #  x 軸上的坐標(biāo)與柱體對(duì)其的位置
        color='bisque',    # 柱體的填充顏色
        tick_label=labels,    # 每個(gè)柱體的標(biāo)簽名稱
        alpha=0.6,    # 柱體填充顏色的透明度
        width=0.8,    # 柱體的寬度
        bottom=0.2,    # 柱體基線的 y 軸坐標(biāo)
        edgecolor='g',   # 柱體的邊框顏色
        linewidth=1.5,   # 柱體邊框線的寬度
        )
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width',
                      'bottom', 'edgecolor', 'linewidth']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
# 設(shè)置整個(gè)子區(qū)的布局
fig.subplots_adjust(left=0,
                    bottom=0,
                    right=0.9,
                    top=1,
                    wspace=0.1,    # 子區(qū)間空白區(qū)域的寬度的歸一化值
                    hspace=0.2);    # 子區(qū)間空白區(qū)域的高度的歸一化值

圖表

圖表

以上就是matplotlib繪制柱狀圖的詳細(xì)介紹了,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。


0 人點(diǎn)贊