timeline

Python笔记:用Python处理Excel的数据,并用pyecharts作可视化输出

风流意气都作罢 提交于 2020-08-08 13:01:48
其实在Python中,每次都以list的形式输入数据会比较耗时而麻烦。所以,不如干脆从数据的载体(比如Excel或MySQL)中加载数据进来处理,然后再直接作可视化输出。例子如下: # 导入模块 import pandas as pd from pyecharts.charts import Bar,Timeline # 加载数据 df = pd.read_excel(r"C:\Users\QDM\Desktop\采购经营综合查询.xlsx",sheet_name = 0,header = 2) df # 聚合求和 df1 = df.groupby(["部门"])["实际销售额","实际出库毛利额"].sum() df1 # 重置索引 df2 = df1.reset_index() df2 # 把结果输出到Excel df2.to_excel(excel_writer = r"C:\Users\QDM\Desktop\业绩.xlsx") # 实例化Bar() bar = Bar() # 设置X轴参数 bar.add_xaxis(df2["部门"].tolist()) # 设置Y轴参数 bar.add_yaxis(df2.columns[1],df2["实际销售额"].tolist()) bar.add_yaxis(df2.columns[2],df2["实际出库毛利额"]

Ubuntu用户都应该了解的快捷键

旧街凉风 提交于 2020-08-07 21:24:34
无论我们使用什么操作系统还是什么软件,快捷键都是非常有用的,因为可以在启动应用程序或跳转到所需窗口,可以快速进行很多操作,而无需动鼠标到处点,节省时间和精力,提高效率。 就像在Windows中一样,Ubuntu也有一些热键可以作为快捷方式来让一些操作变得很简单。这次,我们就来学习一些方便的Ubuntu键盘快捷键,来提高工作效率。 1)使用超级键(Windows键) Windows 键在Unix系统中称为 超级键 ( Super Key ),只需按下超级键,即可打开下图所示的搜索框。 要搜索应用程序,只需输入应用的名称,然后点击应用程序的图标(或者使用方向键移动到对应的应用程序也可以)。 如果你现在打开了很多窗口,想要来个全局预览怎么办?可以使用 超级键 一次查看所有启动的应用程序,如下所示。 2)使用快捷键启动终端 还有一个方便的快捷方式是终端快捷方式。你可以使用简单的Ubuntu键盘快捷键 CTRL + ALT + T 启动终端。这是在最短的时间内启动终端的最简单的快捷方式之一。 3)锁定屏幕 就像在Windows中一样,要锁定屏幕,只需按 超级键 + L 或 CTRL + ALT + L 。这种方式要比去右上角选择锁定屏幕的选项更方便快捷。 4)在打开多个窗口时显示桌面 有时,你需要在已经打开了多个窗口的时候,将所有窗口最小化并且返回桌面。这时你只需要按 超级键 + D 或者按

Linux nohup命令详解,终端关闭程序依然可以在执行!

安稳与你 提交于 2020-08-07 15:04:26
大家好,我是良许。 在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,或者网络不好连接中断,那么程序就会被中止。而这个情况肯定不是我们想看到的,我们希望即使终端关闭,程序依然可以在跑。 这时我们就可以使用 nohup 这个命令。 nohup 命令是英语词组 no hangup 的缩写,意思是 不挂断 ,也就是指程序不退出。这个命令会使程序忽略 HUP 信号,保证程序能够正常进行。 HUP 信号有些人可能比较陌生,它是在终端被中止的时候向它所关联的进程所发出的信号,进程收到这个信号后就会中止运行。所以如果你不希望进程被这个信号干掉的话,就可以忽略这个信号。而 nohup 命令做的就是这个事情。 本文我们将详细介绍 nohup 命令的具体用法。 nohup命令基本语法 nohup 命令的基本语法如下: $ nohup command arguments 或者: $ nohup options 如果你想要得到更多关于 nohup 的用法介绍,可以查看它的帮助页面: $ nohup --help 如果你需要查看它的版本号,可以使用 --version 选项。 $ nohup --version 使用nohup命令启动一个程序 如果你需要运行一个程序,即使对应的 Shell 被退出后依然保持运行,可以这样使用 nohup

Android BufferQueue生产消费原理(八)

橙三吉。 提交于 2020-08-06 21:07:27
Android BufferQueue中核心数据是一个GraphicBuffer的队列。而GraphicBuffer根据使用场合的不同可以从共享内存(即Ashmem,因为这块内存要在应用程序和服务端程序两个进程间共享)或者从硬件图形缓冲区(即Framebuffer,因为它是SurfaceFlinger渲染完要放到屏幕上的)中分配。另外因为用途不同,它的格式,大小,以及在BufferQueue中的数量都可能是不同的. 本文根据网上现有资源进行整合,以及自己的理解,有误之处欢迎指正~~ 一、Why 连接图形数据的生产者和消费者,生产者和消费者可以存在于不同的进程,几乎系统中的所有的图形数据buffer的传递都依赖BufferQueue. 二、How 生产者先指定好他想要的一块空闲的buffer的属性,包括宽,高,像素格式,和用法标识,然后向BQ请求一块符合其需求的空闲buffer(dequeueBuffer()).使用完毕后,通过queueBuffer()方法将这块有数据的buffer返回给BQ.接着,消费者会通过acquireBuffer()获得这块buffer并处理其中的内容,当处理完毕后又会通过releaseBuffer()归还这块buffer给BQ. BufferQueue中核心数据是一个GraphicBuffer的队列

Bootstrap的基本使用(css、js文件的引入)的示例

五迷三道 提交于 2020-08-06 20:00:08
Bootstrap的基本使用(css、js文件的引入) <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="keywords" content="javascript,vueJS,Jquery,AngularJS,HTML5,CSS3"> <meta name="author" content=""> <title>Bootstrap3示例</title> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <!-- 这里是具体的网页内容 --> <!-- bootstrap的核心js文件 --> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <script src="https://cdn.bootcss

如何使用 Shell 脚本来查看多个服务器的端口是否打开?

守給你的承諾、 提交于 2020-08-06 04:43:18
我们在进行服务器配置的时候,经常要查看服务器的某个端口是否已经开放。如果服务器只有一两台的话,那很好办,只需要使用 nc 命令一个个查看即可。 但是,如果你的服务器是个集群,有很多台呢?那如果还一个个手动去检查的话,效率肯定是无比低下的,年底裁员名单里肯定有你。 在这种情况下,我们完全可以使用 Shell 脚本配合 nc 命令来达到我们的目的。而且,不管服务器有几台,需要检查的端口有几个,都可以实现这样的目标。 在本文里,我们用 Shell 脚本来实现两个需求: 扫描多台服务器的 一个 端口是否打开 扫描多台服务器的 多个 端口是否打开 在开始之前,我们先来了解一下 nc 命令。 nc 命令简介 nc 是英文单词 netcat 的缩写,它是通过使用 TCP 或 UDP 的网络协议的连接来读或写数据,可以直接被第三方程序或脚本直接调用。 同时,它是一款功能非常强大的网络调试工具,因为它可以创建几乎所有你所需要的连接方式。 nc 工具主要有三种功能模式:连接模式、监听模式、通道模式。它的一般使用格式如下: $ nc [-options] [HostName or IP] [PortNumber] 接下来,我们就用 Shell 脚本结合 nc 命令来实现我们的两个需求。 1. 扫描多台服务器的一个端口是否打开 在这里,我们先把需要查询的所有服务器地址全部放在一个 server-list

在Linux系统中使用Vim读写远程文件

戏子无情 提交于 2020-08-05 07:07:02
大家好,我是良许。 今天我们讨论一个 Vim 使用技巧——用 Vim 读写远程文件。要实现这个目的,我们需要使用到一个叫 netrw.vim 的插件。从 Vim 7.x 开始,netrw.vim 就被设置为默认安装的标准插件了。这个插件允许用户通过 ftp、rcp、scp、http 等协议读写、编辑和浏览远程文件。 插件 netrw 是什么? netrw (面向网络的读写和浏览 Network oriented reading, writing and browsing)插件不仅支持本地和远程终端跨网络编辑、读写文件,还能支持浏览本地和远程终端目录。需要了解这个插件的更多细节信息,在 Vim 会话输入 help netrw 即可查看。 下面让我们来看看怎么用 Vim 从本地系统读写存储在远程 Linux 系统上的文件。 使用 Linux 系统上的 Vim 读写远程文件 读写远程文件的方法几乎和编辑远程文件一样,需要从本地系统读取一个远程文件,我们可以简单的使用下面这个命令来打开它: $ vim scp://cirdan@192.168.225.22/info.txt 输入 q 退出文件。 要从本地系统写一个远程文件,也是先用上述命令打开文件,之后再按 i 进入插入模式接着就可以往文件里写入了。等写完需要写入文件的内容之后,按 ESC 键退出插入模式,然后输入 wq 保存并退出。

iOS14新特性探索之二:App Widget小组件应用

那年仲夏 提交于 2020-08-04 17:40:33
iOS14新特性探索之二:App Widget小组件应用 iOS 14除了引入了亮眼的App Clips功能外。还有一个也非常惹争议的功能就是App Widget。App Widget可以理解为小组件,在非常早的Android版本中就有了Widget的概念,应用开发者可以为系统开发自己应用相契合的Widget来让用户更加方便的使用应用提供的功能。例如Android早期系统中非常常见的钟表时间组件、快捷设置组件等。用户可以将这些小组件根据自己的喜好放在屏幕的指定位置。从这点看,iOS 14提供的App Widget功能的确不能算是一种创新,最多算是一种增强。 其实,iOS Widget的概念并非是iOS 14突然引入的,在iOS 10发布时,iOS系统就引入了Extension相关功能,其中有一种Extension叫做Today Extension,这就是iOS 14中Widget的前身。Today Extension允许开发者为负一屏开发快捷功能入口。关于Today Extension的应用,如下博客有详细的介绍: iOS8新特性扩展(Extension)应用之一——Today扩展: https://my.oschina.net/u/2340880/blog/485533 iOS中Today扩展插件与宿主APP的交互: https://my.oschina.net/u

vue甘特图gantt

一个人想着一个人 提交于 2020-07-29 06:33:42
  vue做甘特图,先大致介绍下核心功能: (1)横轴、纵轴拖拽; (2)自定义监听点击事件(双击、右键等)(3)任务之间显示父子层级关系;(4)左侧列表信息,右侧时间轴表示任务;(5)每个任务可以订制样式,并且可以动态修改样式;(6)自定义时间粒度显示(小时、天、星期、月、年);(7)支持大批量数据渲染;(8) 支持同行多节点渲染;(9)支持选中,以及批量选中;(9)优秀的扩展性,支持第三方插件。等等还有其他的一些功能。这里先看一下效果图:   接下来会介绍用什么实现的,怎么使用,怎么添加拖拽、点击等各种功能,我以vue为例进行开发。 1、使用GSTC做甘特图开发   Git项目地址: https://github.com/neuronetio/gantt-schedule-timeline-calendar#weekendhighlight-plugin   官方vue实例: https://github.com/neuronetio/vue-gantt-schedule-timeline-calendar   npm指令: npm i gantt-schedule-timeline-calendar   官方做了 3 大主流框架的封装,具体看Git链接,这里我也附上了vue版本的 npm 包地址。   基本使用如下: ps:文章末尾我会贴一个完整的代码

Java笔试面试总结—try、catch、finally语句中有return 的各类情况

前提是你 提交于 2020-07-28 12:29:56
前言 之前在刷笔试题和面试的时候经常会遇到或者被问到 try-catch-finally 语法块的执行顺序等问题,今天就抽空整理了一下这个知识点,然后记录下来。 正文 本篇文章主要是通过举例的方式来阐述各种情况,我这里根据 try-catch-finally 语法块分为两种大情况讨论:try-catch 语法块和 try-catch-finally 语句块,然后再在每种情况里再去具体讨论。 一、try-catch 语句块 我们可以看看下面程序: public static void main(String[] args) { System.out.println(handleException0()); } /** * try,catch都有return * @return */ private static String handleException0() { try{ System.out.println("try开始"); String s = null; int length = s.charAt(0); System.out.println("try结束"); return "try块的返回值"; }catch (Exception e){ System.out.println("捕获到了异常"); return "catch的返回值"; } } 执行结果 :