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画柱状图并添加标签的更多相关文章

  1. Matlab实现画柱状图坐标标签旋转

    引言: 在用matlab画柱状图或者其他图的时候,你是否碰到下图这种情况: 乍一看这个柱状图画的有馍有洋的,but,仔细一看你会发现,横坐标标签如果再长一点就不好看啦,甚至会重叠,就像这样: 这样的图 ...

  2. MATLAB 画柱状图(/直方图)修改横坐标名称并使其横着显示

    使用MATLAB 画柱状图 ,即bar (x,y),其横坐标是默认 1.2.3.4.……的 % --v1 y1=[asum1,asum2,asum3,asum4,asum5,asum6,asum7,a ...

  3. Chartist.js-同时画柱状图和折线图

    最近几天都在研究chartist,因为echarts生成的图是位图,导成PDF的时候不够清晰.而chartist是搜到的免费插件中呼声较高的,基于SVG. 今天主要是想举一些代码例子给大家,介绍下如何 ...

  4. javascript的document中的动态添加标签

    document的高级篇中提供了节点操作的函数,具体包括:获取节点,改变节点,删除节点,替换节点,创建节点,添加节点,克隆节点等函数.我们可以利用这些函数动态改变html的节点. 1.JavaScri ...

  5. EasyUI创建异步树形菜单和动态添加标签页tab

    创建异步树形菜单 创建树形菜单的ul标签 <ul class="easyui-tree" id="treeMenu"> </ul> 写j ...

  6. python画柱状图并且输出到html文件

    import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltfrom Cstring import StringIO y ...

  7. Nemo Documents – 给文件添加标签 以日历的形式将文件呈现出来,很像 Outlook,你可以根据年、月、日来查看不同类型的文档

    Nemo Documents – 给文件添加标签   scavin(Google+) on 2012.03.28. Nemo Documents 是款文件组织管理工具(文档管理器),不是街道大妈胜似大 ...

  8. 添加标签2 jquery 和JS

    TAG添加标签 做了个方法方便调用 一.JS版本 <!DOCTYPE html> <html lang="en"> <head> <met ...

  9. ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化

    php初学者,有什么不对的还请指正. 首先是在html页面中用jq实现添加标签:divAchivePersonnal是select所在的div的外层div,divselectAchivePersonn ...

随机推荐

  1. Gradle使用的简单了解

    Gradle 认识 参考博客:http://www.enjoytoday.cn/categorys/Gradle gradle是一个用于构建工程的工程配置脚本,它可以很便捷的帮助我们构建管理工程结构, ...

  2. 渗透测试学习 十七、 XSS跨站脚本漏洞详解

      一般用途:拿cookie进后台,将后台地址一起发送过来 特点:挖掘困难,绕过困难  大纲: XSS漏洞基础讲解 XSS漏洞发掘与绕过 XSS漏洞的综合利用 XSS漏洞基础讲解 XSS介绍: 跨站脚 ...

  3. 1. Linux基本命令

    1. Linux 基本操作 1 基本命令 序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 Cd [ ...

  4. Python的3种执行方式

    1.Python源程序就是一个特殊格式的文本文件,可以使用任意文本编辑器软件做python的开发,python的文件扩展名为 .py   2.执行python程序的三种方式 解释器:用命令行输入:如输 ...

  5. (一)JVM快速回顾总结

    1,JVM内存结构(JVM体系概述,java8后的JVM) 2,GC的作用域(方法区和线程堆) 3,常见的垃圾回收算法 (1)引用计数 循环引用问题 (1) 那些对象可以作为GC_Root 虚拟机栈( ...

  6. ACM-单向链表插入排序算法(在原链表上操作)

    /* 1.若链表只有一个节点或者为空,直接返回 2.将链表的前两个节点排序,并将排序之后的第二个节点的下一个节点赋空 3.此时整个链表分为了两个,将未排序的节点一一插入到已排序链表中:   3.1.第 ...

  7. 利用java程序构造mysql测试数据

    package com.baidu.mysql;import java.sql.*; public class MysqlJdbc { /** * @param args */ public stat ...

  8. skkyk:题解 洛谷P2420 【让我们异或吧】lca+xor前缀和

    刚学了LCA,写篇题解巩固一下 首先题目有误: (A是否是男生 )xor( B是否是男生)=A和B是否能够成为情侣,这句话显然是错误的qwq 对于这道题,容易看出,对于待处理的两个点,只要我们找到他的 ...

  9. Unity 2018 Cookbook (Matt Smith 著)

    1. Displaying Data with Core UI Elements (已看) 2. Responding to User Events for Interactive UIs (已看) ...

  10. webrtc笔记(5): 基于kurento media server的多人视频聊天示例

    这是kurento tutorial中的一个例子(groupCall),用于多人音视频通话,效果如下: 登录界面: 聊天界面: 运行方法: 1.本地用docker把kurento server跑起来 ...