matplotlib绘制双坐标柱状图

  • 单坐标柱状图绘制
  • 双坐标柱状图绘制
    • 图形美化

本文章记录双坐标柱状图的绘制过程

单坐标柱状图绘制

#来自官网的例子
import matplotlib.pyplot as plt
import numpy as np
#柱状图两组数值
men_means = [20, 34, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
#设置x轴
x = np.arange(5)  # the label locations
width = 0.35  # the width of the bars,设置柱状图柱子的大小
#绘图
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, men_means, width, label='Men')
rects2 = ax.bar(x + width/2, women_means, width, label='Women')
#设置坐标轴标签
# Add some text for labels, title and custom x-axis tick labels, etc.
ax.set_ylabel('Scores')
ax.set_xlabel('Course')
ax.legend()#显示图例
#图形自动调整位置
fig.tight_layout()
#显示图形
plt.show()

输出图片

双坐标柱状图绘制

import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure(figsize=(6,4.5))
ax1 = fig.add_subplot(111)
x = np.arange(5)   # 横坐标范围
total_width, n = 0.8, 2   # 柱状图总宽度,有两组数据
width = total_width / n   # 单个柱状图的宽度
x1 = x - width / 2   # 第一组数据柱状图横坐标起始位置
x2 = x1 + width   # 第二组数据柱状图横坐标起始位置
y1=[1,2,3,4,5]
y2=[2,4,6,8,10]
#第一幅
ax1.bar(x1,y1,width=width,label='y1',color='red',alpha=0.4)
ax1.legend(frameon=False,loc=(0.05,0.85))
ax1.set_xlabel('x')
ax1.set_ylabel('y1')
#第二幅
ax2 = ax1.twinx()
ax2.bar(x2,y2,width=width,label='y2',color='green',alpha=0.4)
ax2.legend(frameon=False,loc=(0.05,0.75))
ax2.set_xlabel('x')
ax2.set_ylabel('y2')
#图形显示
plt.show()

输出图片

图形美化

import matplotlib.pyplot as plt
import numpy as np
#图形大小、像素、字体设置
fig=plt.figure(figsize=(6,4.5))
plt.rcParams['figure.figsize']=(6,4.5)
plt.rcParams['savefig.dpi'] = 600 #图片像素
plt.rcParams['figure.dpi'] = 600
plt.rcParams['font.sans-serif']=['Arial']#图形字体
#字体类型,大小设置
font1 = {'family' : 'Arial','weight' : 'normal','size'   : 18,}
#绘图设置
ax1 = fig.add_subplot(111)
x = np.arange(5)   # 横坐标范围
total_width, n = 0.8, 2   # 柱状图总宽度,有两组数据
width = total_width / n   # 单个柱状图的宽度
x1 = x - width / 2   # 第一组数据柱状图横坐标起始位置
x2 = x1 + width   # 第二组数据柱状图横坐标起始位置
y1=[1,2,3,4,5]
y2=[2,4,6,8,10]
#第一幅
ax1.bar(x1,y1,width=width,label='y1',color='red',alpha=0.4)
plt.legend(frameon=False,loc=(0.05,0.85),fontsize='x-large')
ax1.set_xlabel('x',font1)
ax1.set_ylabel('y1',font1)
plt.yticks(fontsize=16)
plt.xticks(fontsize=16)#调整刻度数值显示角度
#第二幅
ax2 = ax1.twinx()
ax2.bar(x2,y2,width=width,label='y2',color='green',alpha=0.4)
plt.legend(frameon=False,loc=(0.05,0.75),fontsize='x-large')
ax2.set_xlabel('x',font1)
ax2.set_ylabel('y2',font1)
plt.yticks(fontsize=16)
plt.xticks(fontsize=16)#调整刻度数值显示角度
#图形显示
plt.show()

输出图片

【python学习】-matplotlib绘制双坐标柱状图相关推荐

  1. Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案

    Python使用matplotlib绘制分组对比柱状图可视化时(bar plot)汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案 目录

  2. Python学习-Matplotlib库绘制简单点阵图、线型图操作

    Python学习-Matplotlib库绘制简单散点图图和线型图.标签设置以及刻度线设置操作 目录 1.Matplotlib绘图细节的简单理解 2.绘制点图.线型图 3.给图表设置复杂标注 4.移动刻 ...

  3. python绘制多条不同x轴曲线_Python matplotlib 绘制双Y轴曲线图的示例代码

    Matplotlib简介 Matplotlib是非常强大的python画图工具 Matplotlib可以画图线图.散点图.等高线图.条形图.柱形图.3D图形.图形动画等. Matplotlib安装 p ...

  4. Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况)

    Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况) #仿真数据 import pandas as pd import numpy a ...

  5. Python使用matplotlib绘制柱状图(bar plot)实战:水平条形图、垂直条形图、分组条形图、堆叠条形图

    Python使用matplotlib绘制柱状图(bar plot)实战:水平条形图.垂直条形图.分组条形图.堆叠条形图 目录

  6. Python把matplotlib绘制的水平条形图(horizontal bar)转化为竖直的柱状图(vertical bar)实战

    Python把matplotlib绘制的水平条形图(horizontal bar)转化为竖直的柱状图(vertical bar)实战 目录

  7. Python——使用matplotlib绘制柱状图

    Python--使用matplotlib绘制柱状图 1.基本柱状图 首先要安装matplotlib(http://matplotlib.org/api/pyplot_api.html#matplotl ...

  8. python双柱状图与双折线图_如何绘制双轴柱状图和折线图?

    如何绘制双轴柱状图和折线图? 答:第1步,先将数据作成如下表格. ××市2010--2014年农业灌溉用水有效利用系数 年份灌溉亩数(万亩)毛灌溉用水总量(万米3)净灌溉用水总量(万米3)灌溉水有效利 ...

  9. echarts折线图y轴根据数值自动_Python matplotlib 绘制双Y轴曲线图的示例代码

    双X轴的 可以理解为共享y轴 ax1=ax.twiny() ax1=plt.twiny() 双Y轴的 可以理解为共享x轴 ax1=ax.twinx() ax1=plt.twinx() 自动生成一个例子 ...

最新文章

  1. 走进JavaScript响应式编程(Reactive Programming)
  2. [Swift]在不依赖三方库的情况下如何异步下载和缓存图片?
  3. weex运行ios报错:/bin/sh: pod: command not found
  4. 开发人员工作周报_如何增加找到开发人员工作的机会
  5. 求平均数、百分率、最大值、最小值、两个字段相差秒数的SQL
  6. Spring MVC 入门基础(一)
  7. LeetCode 147. Insertion Sort List
  8. HDU 1596 find the safest road (最短路)
  9. echart的基本使用方法
  10. 极速office(Excel)怎么把边框线条加粗
  11. 前端高效开发必备的 js 库
  12. 八条佛曰 66句震撼人心的禅语
  13. 数据库的锁机制理解和运用
  14. 全网最新-扶风视频解析计费系统,2022优化免授权版(赠接口轮询插件)
  15. SpringBoot自动装配流程
  16. 华为云大数据智能数据湖FusionInsight
  17. 配置切入点Pointcut的几种方式
  18. 用国外网盘中转站下载openCanvas
  19. Flash 引导层 实现卫星绕地球旋转
  20. wordpress修改了站点地址导致无法打开网站的解决办法

热门文章

  1. 2019年webstorm激活方法
  2. Vue组件中使用canvas实现蜂巢效果的一些尝试
  3. 四川大学计算机学院工会电话,工会办公室
  4. 4.1重载加号运算符
  5. C++ 简单工厂模式
  6. springfox源码_Java类springfox.documentation.builders.ParameterBuilder的实例源码 - 编程字典...
  7. 使用kali nethunter执行badUSB攻击--基于Rucky工具
  8. python实现mock测试
  9. 【C语言冒泡排序、选择排序和快速排序】
  10. Math/ML:序列监督学习-时间序列数据集/时间序列预测任务的简介、常用算法及其工具、案例应用之详细攻略