首页 > 其他 > 详细

maplotlib画柱状图并添加标签

时间:2019-06-08 12:39:52      阅读:269      评论:0      收藏:0      [点我收藏+]
import json
from collections import Counter
import matplotlib.pyplot as plt
import matplotlib as mpl


def extract(fpath):
    # 提取数据
    # 返回包含有两个元素的元组组成的列表
    
    with open(fpath, encoding='utf-8') as f:
        data = json.load(f)
    
    company_info = []
    for item in data['erDataList']:
        company_info.append((item['city'], item['address']))
    
    return company_info


def autolabel(rects, ax, xpos='center'):
    # 给柱状图中的每一条柱添加标签
    
    for rect in rects:
        height = rect.get_height()
        ax.annotate('{}'.format(height),
                    xy=(rect.get_x() + rect.get_width() / 2, height),
                    xytext=(0, 3),
                    textcoords="offset points",
                    ha="center",
                    va="bottom")


def makeChart(data):
    # 制作图表

    citys = [item[0] for item in data]
   # addrs = [item[1] for item in data]
    
    counter = Counter(citys)
    
    # 设置画布大小,单位是 inch
    fig = plt.figure(figsize=(12, 8))
    ax = fig.add_subplot(1, 1, 1)
    rects = ax.bar(x=list(counter.keys()),
                   height=list(counter.values()))
    ax.set_xlabel("城市分布")
    ax.set_ylabel("2004年成立企业数")
    ax.set_title("广东省2004年各市新成立企业数量")
    autolabel(rects, ax)
    plt.show()


if __name__ == '__main__':
    
    # 设置以正常显示中文字体
    mpl.rcParams['font.sans-serif'] = 'SimHei'   
    fpath = '广西2004.json'
    data = extract(fpath)
    makeChart(data)

maplotlib画柱状图并添加标签

原文:https://www.cnblogs.com/wuzhiblog/p/10990119.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!