Python:柱状-折线图

写论文,需要画数据分析图:

  • 用柱状图描述算法执行时间
  • 用折线图描述性能改进

示例代码:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator

Security = ["128", "192", "256"]

Alg1 = {
    "Others": [55, 99, 170],
    "Ours": [33, 44, 55],
    "Ratio": [23.4, 45.6, 78.9]
    }

################################################################

# 双轴:https://zhuanlan.zhihu.com/p/343719623
# 图形:https://blog.csdn.net/weixin_45891612/article/details/129082746
# 颜色:https://blog.csdn.net/weixin_43697287/article/details/88876680
# 花纹:https://matplotlib.org/2.0.2/examples/pylab_examples/hatch_demo.html
# 图例:https://blog.csdn.net/Wannna/article/details/102751689

# 柱状图坐标
size = len(Security)
x = np.arange(size)
width_bar = 0.2
Alg_x = x
Ours_x = x + width_bar
Security_x = x + width_bar/2

# 刻度间隔
y1_major_locator=MultipleLocator(25)
y2_major_locator=MultipleLocator(10)

bar_color_1 = '#ff8080'
bar_color_2 = '#8080ff'
plot_color = '#111111'

################################################################

fig = plt.figure()
ax1 = fig.add_subplot(111)

ax1.bar(Alg_x, Alg1["Others"], width=width_bar, color=bar_color_1, hatch="--", label="Others")
ax1.bar(Ours_x, Alg1["Ours"], width=width_bar, color=bar_color_2, hatch="//", label="Ours")
ax1.set_ylim(bottom=0, top=250)
ax1.yaxis.set_major_locator(y1_major_locator)

ax1.set_ylabel('Running Time (clocks)')
ax1.set_xlabel('XXX (bits)')
ax1.legend(loc=2)

ax2 = ax1.twinx() # this is the important function

ax2.plot(Security_x, Alg1["Ratio"], color=plot_color, marker="v", label="Relative Improvement")
ax2.set_ylim(bottom=0, top=100)
ax2.yaxis.set_major_locator(y2_major_locator)
ax2.set_ylabel('Percentage (%)')
ax2.legend(loc=1)

for i in range(size):  ##向曲线上的点添加数据标签,利用text函数
       plt.text(Security_x[i], Alg1["Ratio"][i]+1.3, Alg1["Ratio"][i], ha='center', va='bottom', fontsize=10, color=plot_color) 

plt.xticks(Security_x, labels=Security)
plt.title("Alg1")
plt.show()

绘制结果应当存储为 .eps 格式,pdflatex 将它编译为 .pdf 矢量图片。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/476167.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

供电营业厅安防监控视频智能监管解决方案

一、方案背景 供电营业厅作为电力服务的重要窗口,其运营效率和客户满意度直接影响到企业的形象和声誉。在传统的监管模式下,供电营业厅的监控系统与其他消防报警、门禁系统等独立运行,无法做到集中管理、综合监控。为了提升供电营业厅的安防及…

windows上打开redis服务闪退问题处理

方法1:在windows上面打开redis服务时,弹窗闪退可能是6379端口占用,可以用以下命令查看: netstat -aon | findstr 6379 如果端口被占用可以用这个命令解决: taskkill /f /pid 进程号 方法2: 可以使用…

Astra plus 深度相机校准标定

前期工作 在ros中已配置Astra plus 并且深度,ir,彩色图像 首先获取依赖项并编译驱动程序 sudo apt install ros-$ROS_DISTRO-camera-calibration 启动相机 source ./devel/setup.bash roslaunch astra_camera astra_plus.launch 查看发布主题 rostop…

HubSpot社交媒体与CRM数据整合:精准定位与营销优化的新路径

在当今数字化时代,社交媒体与CRM(客户关系管理)系统已经成为企业营销与客户服务的重要工具。然而,这两大系统之间的数据割裂往往导致企业无法充分利用各自的优势,实现更精准的定位和更有效的营销。HubSpot作为一款功能…

大数据推给需要的人

1.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n1678n的每位数字是1,6,7,8。 public static void main(String[]args) {int n1678;int a,b,c,d;an%10;bn/10%1…

原创!分解+集成思想新模型!VMD-CNN-BiGRU-Attention一键实现时间序列预测!以风速数据集为例

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 数据介绍 模型流程 创新点 结果展示 部…

基于electron29版本桌面应用app开发例子

基于electron29版本桌面应用app开发例子 htmljsnode.js 开发模式 生成package.json文件: yarn init --yes 或 npm init --yes 运行打包 yarn dev yarn build # electron与electron-builder版本不兼容问题处理办法: 在package.json中scripts中添加 “…

世媒讯软文营销策略如何做才能达到引流的目的

软文营销是一种通过撰写软文来宣传企业、产品或服务的网络营销方式。通过撰写具有故事性、吸引人的文章来间接推广产品、服务或品牌的营销策略。要实现软文营销的目的,即引流(吸引流量),以下是一些有效的策略: 新闻策略…

10.注册页面

注册页面 在pages中新建页面register 复制粘贴之前的登录页面 设置上传头像图片 微信官方文档 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html <button class"avatar-wrapper" open-type"chooseAvatar&quo…

PCL安装(C++)并配置vs

准备工作&#xff1a; 1.PCL下载包(此教程使用PCL1.11.0) 3.visual studio(此教程使用vs2019) PCL下载&#xff1a; 1、找到自己适合的PCL版本,我选择的是PCL1.11.0。 1.1 Github下载&#xff1a;Releases PointCloudLibrary/pcl GitHub 1.2 百度网盘&#xff1a;https://pan…

初识数据库原理:为什么需要数据库?

初识数据库原理&#xff1a;什么是数据库&#xff1f; Chapter1&#xff1a;什么是数据库&#xff1f; 笔记来源&#xff1a;《漫画数据库》–科学出版社 1.1 为什么需要数据库&#xff1f; 文件应用的管理方式&#xff0c;数据会出现重复。 若各个部门各自管理自己一方的数…

牛客NC196 编辑距离(一)【较难 DFS/DP,动态规划,样本对应模型 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/6a1483b5be1547b1acd7940f867be0da 思路 编辑距离问题 什么是两个字符串的编辑距离&#xff08;edit distance&#xff09;&#xff1f;给定字符串s1和s2&#xff0c;以及在s1上的如下操作&#xff1a;插入&…

【ARM】DSTREAM上面的各个指示灯代表什么意思?

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 对于DStream仿真器上面的指示灯亮灭代表的意义进行分析。 2、 问题场景 主要对于DStream仿真器的使用过程中&#xff0c;不同的情况下面仿真器的指示灯会进行相应的亮灭。了解一下不同指示灯的亮灭所提示的信息…

部署Prometheus+grafana详解

目录 一、prometheus 介绍 二、prometheus 对比 zabbix 三、prometheus 监控插件 四、部署 1、下载所需的包 2.编辑prometheus的配置文件 3、编辑alertmanager 的配置文件 4、tmpl 模板&#xff08;将此文件创建在/opt/alertmanager/tmpl/&#xff09; 5.启动&#xff0…

Google colab中如何从kaggle中接入数据?

写在前面 使用google colab进行数据分析和探索时&#xff0c;可引用的数据源包括但不限于&#xff1a;1.可上传的数据文件用本地加载的的方式打开数据资源&#xff1b;2.从网络链接中直接打开后加载到缓存中的文件资源&#xff1b;3.通过API或者外部的开放接口加载数据&#x…

人生亏钱指南pdf分享【谨防上当】【警钟长鸣】不知道动了多少人蛋糕,看到后赶快收藏起来

查理芒格&#xff1a;如果知道我会死在哪里&#xff0c;那我将永远不去那个地方 书中分别投资篇、知识付费篇、合伙合作篇、实体项目篇、欺诈篇、借贷篇、健康篇等方向详细解释可能亏钱的坑&#xff01; 书中说到&#xff1a; 成年人的世界&#xff0c;踩坑已是日常&#xff0…

java框架 2 springboot 过滤器 拦截器 异常处理 事务管理 AOP

Filter 过滤器 对所有请求都可以过滤。 实现Filter接口&#xff0c;重写几个方法&#xff0c;加上WebFilter注解&#xff0c;表示拦截哪些路由&#xff0c;如上是所有请求都会拦截。 然后还需要在入口处加上SvlterComponentScan注解&#xff0c;因为Filter是javaweb三大组件之…

计算机二级C语言的注意事项及相应真题-6-程序设计

目录 51.将a所指数组主对角线上的元素分别乘以2;次对角线上的元素分别乘以3&#xff0c;依次放入指针p所指的数组中。计算过程中不得修改a所指数组中的数据52.将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位…

面试算法-62-盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。…

Java------数据结构之栈与队列(简单讲解)

本篇碎碎念&#xff1a;时隔n个月&#xff0c;继续写博客&#xff0c;假期落下的进度&#xff0c;在开学后努力追赶&#xff0c;假期不努力&#xff0c;开学徒伤悲啊&#xff0c;此时此刻真想对自己说一句&#xff0c;活该啊~~~~ 欠下的链表练习题讲解会在下次更新~~~~ 今日份励…