1.画两个条形图,bar和barh, 同时axes[0].axhline画一条横线,axes[1].axvline画一条竖线

  1. import numpy as np
  2. import matplotlib.pyplot as plt

  3. np.random.seed(0)
  4. x = np.arange(5)
  5. y = np.random.randint(-5, 5, 5)
  6. # 分成两个方框,一行两列
  7. fig,axes = plt.subplots(ncols=2)
  8. # 对第一个方框进行画图bar
  9. axes[0].bar(x, y, color='r')
  10. # 对第二个方框进行画图barh
  11. axes[1].barh(x, y, color='g')
  12. # 对第一个方框画一条横线,axhline
  13. axes[0].axhline(0, color='grey', linewidth=2)
  14. # 对第二个方框画一条竖线, axvline
  15. axes[1].axvline(0, color='grey', linewidth=2)
  16.  
  17. plt.show()

2.根据条形图y的大小设置每个条形图的颜色

  1. np.random.seed(0)
  2. fig, ax = plt.subplots()
  3. v_bars = ax.bar(x, y, color='lightblue')
  4. for bars, height in zip(v_bars, y):
  5. if height < 0:
  6. bars.set(edgecolor='darkred', color='green', linewidth=2)
  7. plt.show()

3.fill_between 进行填充操作, .consum 表示的是进行累加操作,将前一个值累加到当前值

  1. x = np.random.randn(100).cumsum()
  2. y = np.linspace(0, 100, 100)
  3. fig, ax = plt.subplots()
  4. ax.fill_between(x, y, color='lightblue')
  5. plt.show()

4. fill_between 对两个函数之间进行填充操作

  1. x = np.linspace(0, 10, 200)
  2. y1 = 2*x + 1
  3. y2 = 3*x + 1.2
  4. y_mean = 0.5*x*np.cos(2*x) + 2.5*x + 1.1
  5. fig, ax = plt.subplots()
    # 填充函数之间的值
  6. ax.fill_between(x, y1, y2, color='red')
  7. plt.plot(x, y_mean, color='black')
  8. plt.show()

5. 误差棒的设置plt.bar(yerr=variance) # variance表示误差的大小

  1. mean_values = [1, 2, 3]
  2. # variance表示误差
  3. variance = [0.2, 0.4, 0.5]
  4. bar_label = ['bar1', 'bar2', 'bar3']
  5. # 设置x轴的范围
  6. x_pos = list(range(len(mean_values)))
  7. # yerr用来设置误差棒
  8. plt.bar(x_pos, mean_values, color='r', yerr=variance)
  9. max_y = max(zip(mean_values, variance))
  10. # 设置y轴的显示范围
  11. plt.ylim([0, (max_y[0] + max_y[1]) * 1.2])
  12. # 设置x轴的标签,x_pos表示标签的位置,bar_label表示标签名
  13. plt.xticks(x_pos, bar_label)
  14. plt.ylabel('variable_y')
  15. plt.show()

6. 画横向并排的条形图

  1. x1 = np.array([1, 2, 3])
  2. x2 = np.array([1, 2, 3])
  3.  
  4. bar_label = ['bar1', 'bar2', 'bar3']
  5. fig = plt.figure(figsize=[8, 6])
  6. y_pos = list(np.arange(len(x1)))
  7. plt.barh(y_pos, x1, color='r',)
  8. plt.barh(y_pos, -x2, color='b',)
  9. # 为了使得图形美观,设置xlim和ylim的范围
  10. plt.xlim([-max(x2)-1, max(x1) + 1])
  11. plt.ylim(-1, max(y_pos) + 1)
  12. plt.show()

7.设置位置的宽度进行并排

  1. green_data = [1, 2, 3]
  2. blue_data = [3, 2, 1]
  3. red_data = [2, 3, 3]
  4. labels = ['group1', 'group2', 'group3']
  5. # 设置x_pos的位置
  6. x_pos = list(range(len(green_data)))
  7. print(x_pos)
  8. width = 0.2
  9. plt.bar(x_pos, green_data, width=width, color='g', label=labels[0], alpha=0.6)
  10. plt.bar([x+width for x in x_pos], blue_data, width=width, color='b', label=labels[1], alpha=0.6)
  11. plt.bar([x+2*width for x in x_pos], red_data, width=width, color='r', label=labels[2], alpha=0.6)
  12. plt.legend(loc='best', framealpha=0.05)
  13. plt.show()

8. 在画的条形图上加竖线ax.axvline(data.min())  在条形图的后面加上%plt.text 通过获得每个条形图的位置信息

  1. data = np.arange(200, 225, 5)
  2. bar_labels = ['a', 'b', 'c', 'd', 'e']
  3. y_pos = list(np.arange(len(data)))
  4. fig, ax = plt.subplots()
  5. # ax.spines['top'].set_visible(False)
  6. # 去除右边的框图
  7. ax.spines['right'].set_visible(False)
  8. plt.yticks(y_pos, bar_labels)
  9. v_bars = plt.barh(y_pos, data)
  10. # 加横线
  11. ax.axvline(data.min(), linestyle='--', color='k')
  12. # 进行对每一个条形块文本标注
  13. for b, d in zip(v_bars, data):
  14. plt.text(b.get_width(), b.get_y()+b.get_height()/2, '{0:.2%}'.format(d/min(data)))
  15. plt.show()

9. 构造colormap来建立条形图的颜色  使用colormap构造条形图cm.ScalarMappable(col.Normalize())

  1. import matplotlib.colors as col
  2. import matplotlib.cm as cm
  3. mean_values = range(10, 18)
  4. x_pos = range(len(mean_values))
  5. # 构造colormap, cm.hot表示风格
  6. cmap1 = cm.ScalarMappable(col.Normalize(min(mean_values), max(mean_values), cm.hot))
  7. cmap2 = cm.ScalarMappable(col.Normalize(0, 20, cm.hot))
  8. plt.subplot(121)
  9. # cmap1.to_rgba(mean_values) # 将color_map使用到mean_values
  10. plt.bar(x_pos, mean_values, color=cmap1.to_rgba(mean_values))
  11. plt.subplot(122)
  12. plt.bar(x_pos, mean_values, color=cmap2.to_rgba(mean_values))
  13. plt.show()

10. b.set_hatch('o') # 画出不同填充风格的条形图

  1. patterns = ('-', '+', 'x', '\\', '*', 'o', 'O', '.')
  2. data = range(1, len(patterns) + 1 )
  3. x_pow = range(len(data))
  4.  
  5. bars = plt.bar(x_pow, data)
  6. for b, p in zip(bars, patterns):
  7. b.set_hatch(p)
  8.  
  9. plt.show()

可视化库-Matplotlib-条形图(第四天)的更多相关文章

  1. Python数据可视化库-Matplotlib(一)

    今天我们来学习一下python的数据可视化库,Matplotlib,是一个Python的2D绘图库 通过这个库,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率图,条形图,错误图,散点图等等 废 ...

  2. Python可视化库-Matplotlib使用总结

    在做完数据分析后,有时候需要将分析结果一目了然地展示出来,此时便离不开Python可视化工具,Matplotlib是Python中的一个2D绘图工具,是另外一个绘图工具seaborn的基础包 先总结下 ...

  3. Python可视化库Matplotlib的使用

    一.导入数据 import pandas as pd unrate = pd.read_csv('unrate.csv') unrate['DATE'] = pd.to_datetime(unrate ...

  4. python的数据可视化库 matplotlib 和 pyecharts

    Matplotlib大家都很熟悉    不谈. ---------------------------------------------------------------------------- ...

  5. 数据分析处理库pandas及可视化库Matplotlib

    一.读取文件 1)读取文件内容 import pandas info = pandas.read_csv('1.csv',encoding='gbk') # 获取文件信息 print(info) pr ...

  6. 可视化库-Matplotlib-3D图(第四天)

    1. 画三维图片图 axes = Axes3D(fig)这一步将二维坐标转换为三维坐标,axes.plot_surface() import matplotlib.pyplot as plt impo ...

  7. Python数据可视化库-Matplotlib(二)

    我们接着上次的继续讲解,先讲一个概念,叫子图的概念. 我们先看一下这段代码 import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.a ...

  8. python可视化库 Matplotlib 01 figure的详细用法

    1.上一章绘制一幅最简单的图像,这一章介绍figure的详细用法,figure用于生成图像窗口的方法,并可以设置一些参数 2.先看此次生成的图像: 3.代码(代码中有详细的注释) # -*- enco ...

  9. python可视化库 Matplotlib 00 画制简单图像

    1.下载方式:直接下载Andaconda,简单快捷,减少准备环境的时间 2.图像 3.代码:可直接运行(有详细注释) # -*- encoding:utf-8 -*- # Copyright (c) ...

  10. 可视化库-Matplotlib-盒图(第四天)

    盒图由五个数值点组成,最小观测值,下四分位数,中位数,上四分位数,最大观测值 IQR = Q3 - Q1  Q3表示上四分位数, Q1表示下四分位数,IQR表示盒图的长度 最小观测值 min =Q1 ...

随机推荐

  1. linux-android-adt

    本打算带着唐帅弟弟研究几天手机开发,没想到这老弟天天遇到问题,原来认为他除了错误,没想到啊,我一上手也到处 是错误,折磨我们哥俩了,今天我俩干 了几把扑克,PK了一次羽毛球,回来研究了一会,阿门问题解 ...

  2. EBS 定义并发参数常用值集

    1.ORG_ID 2.DATE 3.YES_NO

  3. 第13课:HTML基础之DOM操作2

    1. 1)d.innerHTML:标签中的所有内容 删除某个标签 a)可以直接修改innerHTML的值: b) 2)d.innerText:标签中的文本内容 3)input.value='aaa'  ...

  4. 重构 demo篇

    本文背景为学习重构一书中的一些信息的记录. 该篇以一个影片租赁为背景.通过一层层的重构,最终实现相对来说比较完美的代码. 文中经典语句摘要: “如果它没有坏,就不要动它 .” 用来形容我们工作中一些比 ...

  5. SSH整合报错:Unable to instantiate Action, testAction, defined for 'test' in namespace '/'testAction

    报错如下: Struts Problem Report Struts has detected an unhandled exception: Messages: testAction Unable ...

  6. 错误 1 类,结构或接口成员声明中的标记"="无效

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...

  7. tensorflow中tensor的静态维度和动态维度

    tf中使用张量(tensor)这种数据结构来表示所有的数据,可以把张量看成是一个具有n个维度的数组或列表,张量会在各个节点之间流动,参与计算. 张量具有静态维度和动态维度. 在图构建过程中定义的张量拥 ...

  8. 一个Android开发妹子的找工作心酸史

    阿里:实习二面被KO 1,人生接到的第一个电话面试来自大家都说好的阿里,心情激动,说话颤抖,本以为没有戏,然而第二天接到了二面的电话有点小激动.然后就是被ko了,死的原因很简单,那时候单纯的自己什么都 ...

  9. 在做私密相冊的SDK,奇怪的是在ios6上项目里的navigationbar能够传进来一直往下传,但在ios7上却仅仅能够传一层,原来答案在下边

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/chenyong05314/article/details/33867247 //若不加这一句 在IO ...

  10. 关于location.href赋值的php用法

    <?php echo $_GET['action']; ?> <!doctype html> <html lang="zh"> <head ...