Python使用matplotlib庫繪製柱形圖

Python使用matplotlib庫繪製柱形圖

使用方法都寫在程序裏面的註釋中,請盡情享用,如果您覺得不錯可以點個贊哦🙂
代碼如下:

# -*- coding:utf-8 -*-
from matplotlib import pyplot as plt

__author__ = 'Evan'


def plot(title, data_list=[], x_label=(), y_label=()):
    """
    繪柱形圖
    :param str title: 圖片標題
    :param list data_list: 數據列表
    :param tuple x_label: (X軸標籤,X軸刻度標籤)
    :param tuple y_label:(Y軸標籤,Y軸刻度標籤)
    :return:
    """
    # 處理中文亂碼
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    plt.rcParams['axes.unicode_minus'] = False

    item_range = range(len(data_list[0]))  # 計算所有數據的長度
    plt.title(title)  # 添加標題

    # 繪X軸刻度的第一個柱形圖(寬度0.4)
    plt.bar(item_range, data_list[0], align='center',
            alpha=0.8, width=0.4)
    # 向右移動0.4 繪X軸刻度的第二個柱形圖(寬度0.4)
    plt.bar([i+0.4 for i in item_range], data_list[1], align='center',
            color='y', alpha=0.8, width=0.4)

    plt.xlabel(x_label[0])  # 添加X軸標籤
    plt.xticks([i+0.2 for i in item_range], x_label[1])  # 添加X軸刻度標籤(向右移動0.2居中擺放)

    plt.ylabel(y_label[0])  # 添加Y軸標籤
    plt.ylim(y_label[1])  # 設置Y軸的刻度範圍

    # 爲X軸刻度的第一個柱形圖加數值標籤
    for x, y in enumerate(data_list[0]):
        plt.text(x, y+10, '%s' % round(y, 1), ha='center')
    # 向右移動0.4 爲X軸刻度的第二個柱形圖添加數值標籤
    for x, y in enumerate(data_list[1]):
        plt.text(x+0.4, y+10, '%s' % round(y, 1), ha='center')

    plt.show()  # 顯示圖形
    # plt.savefig('./example.jpg')  # 保存圖片


if __name__ == '__main__':
    city_title = '四個直轄市GDP大比拼'
    data = [[100, 300, 500, 700], [200, 400, 600, 800]]
    x_label_tuple = ('城市分佈', ['北京市', '上海市', '天津市', '重慶市'])
    y_label_tuple = ('GDP', [50, 1000])
    plot(title=city_title, data_list=data, x_label=x_label_tuple, y_label=y_label_tuple)

執行結果:
plot

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章