matplotlib绘制柱状图(基础操作) 您所在的位置:网站首页 matplotlib论文柱状图 matplotlib绘制柱状图(基础操作)

matplotlib绘制柱状图(基础操作)

#matplotlib绘制柱状图(基础操作)| 来源: 网络整理| 查看: 265

@TOC

前言

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。本文由浅入深,教你画柱状图

柱状图的部分源码 bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

这里是bar中部分源码(主要是参数部分),下面的内容将由浅入深逐渐演示各个参数的作用,以达到理解的作用,且能画出漂亮的柱状图。

一、画一个简单的柱状图 bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

首先,我们只需要指定两个参数,就可以画一个简单的柱状图 一个是x,一个是height. x 的作用是设置柱所在的位置(也就是在x坐标上面的什么位置) height的作用是设置柱状图的高度

x与geight的数据存储在list当中,在实际写入时,并不需要去指定,python会自动识别出来(可以去debug 一下进入plt.bar([xxxx],[xxxx])这个语句,就会发现bar会做特别多的事)

import matplotlib.pyplot as plt plt.bar([0,1,2,3],[5,6,7,8]) plt.show()

在这里插入图片描述

二、设置坐标的刻度(ticks),轴的标签和标题

在数据分析的很多时候,我们各个柱下面通常不是x刻度值,而是有实际意义的字符串,那么这个时候就需要我们进行一个设置,比如说

1.plt.xticks(各个柱所在的x坐标的位置,想换成的标签) 一般传入将数据存在列表中再传入参数 设置r轴也同样的道理

2.设置x与y轴的标签就比较简单了 plt.xlabel("") plt.ylabel("") 3.设置标题 plt.title(“i am title”)

import matplotlib.pyplot as plt import matplotlib data = [5, 6, 7, 8] labels = ["a", "b", "c", "d"] plt.bar(range(len(data)), data) plt.xticks(range(len(data)),labels) plt.xlabel("i am x") plt.ylabel("i am y") plt.title("i am title") plt.show()

在这里插入图片描述

三、设置图的颜色

这里我只说非常简单的设置颜色的方法,因为如果详细的说如何设置关于颜色的东西,需要另外写一篇博文来详细说明,这一篇是不够的,但我会放一个链接,里面会有非常详细关于颜色的设置.

颜色的设置在bar中,我们只需要写color = [xxxxx]就可以设置

如果需要设置的量比较大,还可以这样设置

import matplotlib.colors as mcolors colors = list(mcolors.TABLEAU_COLORS.keys()) import matplotlib.pyplot as plt import matplotlib data = [5, 6, 7, 8] labels = ["a", "b", "c", "d"] colors = ["red","yellow",'blue','black'] plt.bar(range(len(data)), data,color="colors") plt.xticks(range(len(data)),labels) plt.xlabel("i am x") plt.ylabel("i am y") plt.title("i am title") plt.show()

在这里插入图片描述

更多设置颜色的方法,请看下面的几篇博文: 一文搞懂matplotlib中的颜色设置

Python Matplotlib绘制渐变色柱状图(bar)并加边框和配置渐变颜色条(colorbar)

四、设置柱的透明度

这个也比较容易,在bar中写入alpha=x就就可以了,x在0-1之间,这里不作过多展示

五、设置柱的宽度(width)

width宽度是在bar中的参数 设置也很容易,我们只需要指定一个数值即可,即width = x width 的默认值是0.8,如果想让各个柱挨在一起,可以设置width = 1.0 width一般设置范围就在(0,1)之间。

width设置大于1.0 或者是负数也是可以的 ,可以自己尝试一下。

import matplotlib.pyplot as plt import matplotlib data = [5, 6, 7, 8] labels = ["a", "b", "c", "d"] colors = ["red","yellow",'blue','black'] plt.bar(range(len(data)), data,color=colors,width=0.5) plt.xticks(range(len(data)),labels) plt.xlabel("i am x") plt.ylabel("i am y") plt.show()

这个是width = 0.5 在这里插入图片描述

这个是width = 1.0

在这里插入图片描述

这个是width = 5

在这里插入图片描述

六、在柱上添加数据

上面我们画出了图,但是各个图的高度并不能非常清晰的看出来,于是我们可以在上面添加各个数的高度,那么就需要用到下面的函数

plt.text()

plt.text(x=100, y=100, s=‘text’, rotation=90) x=:表示在画布上的x坐标 y=:表示在画布上的y坐标 s=:表示需要展示的文本 rotation=:表示文本的旋转角度

import matplotlib.pyplot as plt import matplotlib data = [5, 6, 7, 8] labels = ["a", "b", "c", "d"] colors = ["red","yellow",'blue','black'] plt.bar(range(len(data)), data,color=colors,width=0.5) plt.xticks(range(len(data)),labels) for i in range(len(data)): plt.text(x= i- 0.05 , y=data[i] + 0.2, s = '%d' % data[i]) plt.xlabel("i am x") plt.ylabel("i am y") plt.title("i am title") plt.show()

在这里插入图片描述

总结

以上操作,基本可以画出来一个像样的图了,更加具体的,可以更加深入的了解其中的各个参数,对细节进行更多的打磨,谢谢。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有