matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。 -----引用自:http://hyry.dip.jp/pydoc/matplotlib_intro.html

这篇我们用matplotlib从构造最简单的bar一步一步向复杂的bar前行。什么是最简单的bar,看如下语句你就知道她有多么简单了:

import matplotlib.pyplot as plt

plt.bar(left = 0,height = 1)

plt.show()

执行效果:

是的,三句话就可以了,是我见过最简单的绘图语句。首先我们import了matplotlib.pyplot ,然后直接调用其bar方法,最后用show显示图像。我解释一下bar中的两个参数:

left:柱形的左边缘的位置,如果我们指定1那么当前柱形的左边缘的x值就是1.0了

height:这是柱形的高度,也就是Y轴的值了

left,height除了可以使用单独的值(此时是一个柱形),也可以使用元组来替换(此时代表多个矩形)。例如,下面的例子:

import matplotlib.pyplot as plt

plt.bar(left = (0,1),height = (1,0.5))

plt.show()

可以看到 left = (0,1)的意思就是总共有两个矩形,第一个的左边缘为0,第二个的左边缘为1。height参数同理。

当然,可能你还觉得这两个矩形“太胖”了。此时我们可以通过指定bar的width参数来设置它们的宽度。

import matplotlib.pyplot as plt

plt.bar(left = (0,1),height = (1,0.5),width = 0.35)

plt.show()

此时又来需求了,我需要标明x,y轴的说明。比如x轴是性别,y轴是人数。实现也很简单,看代码:

import matplotlib.pyplot as plt

plt.xlabel(u'性别')

plt.ylabel(u'人数')

plt.bar(left = (0,1),height = (1,0.5),width = 0.35)

plt.show()

注意这里的中文一定要用u(3.0以上好像不用,我用的2.7),因为matplotlib只支持unicode。接下来,让我们在x轴上的每个bar进行说明。比如第一个是“男”,第二个是“女”。

import matplotlib.pyplot as plt

plt.xlabel(u'性别')

plt.ylabel(u'人数')

plt.xticks((0,1),(u'男',u'女'))

plt.bar(left = (0,1),height = (1,0.5),width = 0.35)

plt.show()

plt.xticks的用法和我们前面说到的left,height的用法差不多。如果你有几个bar,那么就是几维的元组。第一个是文字的位置,第二个是具体的文字说明。不过这里有个问题,很显然我们指定的位置有些“偏移”,最理想的状态应该在每个矩形的中间。你可以更改(0,1)=>( (0+0.35)/2 ,(1+0.35)/2 )不过这样比较麻烦。我们可以通过直接指定bar方法里面的align="center"就可以让文字居中了。

import matplotlib.pyplot as plt

plt.xlabel(u'性别')

plt.ylabel(u'人数')

plt.xticks((0,1),(u'男',u'女'))

plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center")

plt.show()

接下来,我们还可以给图标加入标题。

plt.title(u"性别比例分析")

当然,还有图例也少不掉:

import matplotlib.pyplot as plt

plt.xlabel(u'性别')

plt.ylabel(u'人数')

plt.title(u"性别比例分析")

plt.xticks((0,1),(u'男',u'女'))

rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center")

plt.legend((rect,),(u"图例",))

plt.show()

注意这里的legend方法,里面的参数必须是元组。即使你只有一个图例,不然显示不正确。

接下来,我们还可以在每个矩形的上面标注它具体点Y值。这里,我们需要用到一个通用的方法:

def autolabel(rects):

for rect in rects:

height = rect.get_height()

plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height))

其中plt.text的参数分别是:x坐标,y坐标,要显示的文字。所以,调用代码如下:

import matplotlib.pyplot as plt

def autolabel(rects):

for rect in rects:

height = rect.get_height()

plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height))

plt.xlabel(u'性别')

plt.ylabel(u'人数')

plt.title(u"性别比例分析")

plt.xticks((0,1),(u'男',u'女'))

rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center")

plt.legend((rect,),(u"图例",))

autolabel(rect)

plt.show()

到这里这个图形已经基本完备了,不过可以看到你一个矩形紧靠这顶部,不是很好看。最好能够空出一段距离出来就好了。这个设置我没有找到具体的属性。不过,我还是通过一个小技巧来实现了。就是bar属性的yerr参数。一旦设置了这个参数,那么对应的矩形上面就会有一个竖着的线,我不知道他是干什么的。不过当我把这个值设置的很小的时候,上面的空白就自动空出来了。如图:

rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center",yerr=0.000001)

对于左右两边能否空出空白来暂时还没有找到(xerr参数不行)

python用matplotlib画皮卡丘_python使用matplotlib绘图 -- barChart相关推荐

  1. python用matplotlib画皮卡丘_matplotlib常用用法总结(持续更新)

    import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline # %cat /Us ...

  2. python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)

    前段时间袭击中国的超强台风"利奇马",以及这两天袭击美国的五级飓风"多利安",让我们感受到了大自然的力量.所以,今天分享一个简单的Python实例,也算是延续前 ...

  3. python简单代码画皮卡丘-实现童年宝可梦,教你用Python画一只属于自己的皮卡丘...

    原标题:实现童年宝可梦,教你用Python画一只属于自己的皮卡丘 大数据文摘出品 作者:李雷.蒋宝尚 还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗? 还记得和小伙伴拿着精灵球,一起召唤小精灵的中二模 ...

  4. python简单代码画皮卡丘-用python画一只可爱的皮卡丘

    #!/usr/bin/env python # -*- coding:utf-8 -*- from turtle import * ''' 绘制皮卡丘头部 ''' def face(x,y): &qu ...

  5. python简单代码画皮卡丘-用python画一只可爱的皮卡丘实例

    效果图 #!/usr/bin/env python # -*- coding:utf-8 -*- from turtle import * ''' 绘制皮卡丘头部 ''' def face(x,y): ...

  6. python用turtle画皮卡丘_用Python的turtle作画(2)——皮卡丘

    from turtle import * # 绘制皮卡丘头部 # 画脸 def face(x, y): begin_fill() penup() # 将海龟移动到指定的坐标 goto(x, y) pe ...

  7. python使用matplotlib 画柱状图代码_Python 使用 matplotlib 画柱状图教程

    Python 使用 matplotlib 画图是非常方便的,之前的文章记录了<Python 使用 matplotlib 画折线图教程>,今天就再次记录一下使用 matplotlib 画柱状 ...

  8. python matplotlib画折线图_python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序 ...

  9. python简单代码画皮卡丘-利用Python绘制萌萌哒的皮卡丘

    开发工具 Python版本:3.6.4 运用的一些简单的算法 注:想学习Python的小伙伴们 可以 进群:984632579 领取从0到1完整学习资料 视频 源码 精品书籍 一个月经典笔记和99道练 ...

  10. python用matplotlib画雷达图_python使用matplotlib绘制雷达图

    本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下 示例代码: # encoding: utf-8 import pandas as pd impo ...

最新文章

  1. C#拾遗系列(4):索引器
  2. java executequery_关于Java怎样封装executeQuery()的问题
  3. rocketmq 顺序消费_必须先理解的RocketMQ入门手册,才能再次深入解读
  4. 等待队列wait queue
  5. 用-force –opengl 指令_苹果新系统ios14新功能汇总 轻点背面等小技巧怎么用
  6. dataTable调用接口渲染数据,没有数据,报错
  7. 当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题?
  8. [转]flash在C#中的应用
  9. c语言中tmod,单片机C语言请教——有关TMOD
  10. 魔兽实名好友怎么显示服务器,魔兽世界实名好友跨服组队详细解析
  11. windows打印机共享给linux,linux使用windows共享打印机
  12. android opengl 帧动画,Android OpenGLES2.0(十三)——流畅的播放逐帧动画
  13. 总账科目往来批量导入程序
  14. UVa10019:Funny Encryption Method
  15. web前端人员每天必须关注的前端社区网站
  16. 计算机电脑怎么改皮肤,终极:如何更改计算机鼠标的皮肤
  17. Verilog中 reg和wire 用法 以及always和assign的区别
  18. 数组数据结构的使用与代码编写(一)
  19. NIR近红外光谱简介
  20. 量化交易 米筐 交易接口与投资信息

热门文章

  1. word插入目录右边对不齐
  2. 20191121每日一句
  3. 190726每日一句
  4. 181223每日一句
  5. atitit 短信验证码的源码实现  .docx
  6. Atitit 颜色平均值cloor grb hsv模式的区别对比
  7. paip.百度空间 JAVA程序发文总结
  8. 美国散户从90%降到6%,他们是如何被“消灭”的?
  9. 富国银行眼下乱成一团糟:数据中心被烟雾笼罩,银行网站和应用软件宕机
  10. Julia : REPL中的一些快捷键