在本教程中,我们将讨论如何向 Matplotlib 图形添加文本。 我们可以通过两种方式来实现。 一种是将文本放置在图表上的某个位置。 另一个是专门注解图表上的绘图,来引起注意。 这里的起始代码是教程 15,它在这里: import matplotlib.pyplot as plt import matplotlib.dates as mdates import matplotlib.ticker
在本教程中,我们将介绍一些更多的自定义,比如颜色和线条填充。 我们要做的第一个改动是将plt.title更改为stock变量。 plt.title(stock) 现在,让我们来介绍一下如何更改标签颜色。 我们可以通过修改我们的轴对象来实现: ax1.xaxis.label.set_color('c') ax1.yaxis.label.set_color('r') 如果我们运行它,我们会看到标签改变
在 Matplotlib 教程中,我们将讨论一些可能的图表自定义。 为了开始修改子图,我们必须定义它们。 我们很快会谈论他们,但有两种定义并构造子图的主要方法。 现在,我们只使用其中一个,但我们会很快解释它们。 现在,修改我们的graph_data函数: def graph_data(stock): fig = plt.figure() ax1 = plt.subplot2grid
十一、 时间和性能 Nmap 开发的最高优先级是性能。在本地网络对一个主机的默认扫描(nmap hostname)需要 1/5 秒。而仅仅眨眼的时间,就需要扫描上万甚至几十万的主机。此外,一些特定的扫描选项会明 显增加扫描时间,如 UDP 扫描和版本检测。同样,防火墙配置以及特殊的响应速度限制也会增 加时间。Nmap 使用了并行算法和许多先进的算法来加速扫描,用户对 Nmap 如何工作有最终的控
十、 操作系统探测 Nmap 最著名的功能之一是用 TCP/IP 协议栈 fingerprinting 进行远程操作系统探测。 Nmap 发 送一系列 TCP 和 UDP 报文到远程主机,检查响应中的每一个比特。 在进行一打测试如 TCP ISN 采样,TCP 选项支持和排序,IPID 采样,和初始窗口大小检查之后, Nmap 把结果和数据库 nmap-os-fingerprints 中超过 15
现在随便一个小程序的实现都可能包含超过10000个函数。然而作者一般只需要考虑其中很小的一部分和做很少的设计,因为绝大部分代码都是由他人编写的,它们通过类似包或模块的方式被重用。 Go语言有超过100个的标准包(译注:可以用go list std | wc -l命令查看标准包的具体数目),标准库为大多数的程序提供了必要的基础构件。在Go的社区,有很多成熟的包被设计、共享、重用和改进,目前互联网上已
Django诞生于美国中部堪萨斯的劳伦斯,距美国的地理中心不到40英里。 像大多数开源项目一样,Djano社区逐渐开始包括来自全球各地的许多参与者。 鉴于Django社区逐渐变的多样性,国际化和本地化逐渐变得很重要。 由于很多开发者对这些措辞比较困惑,所以我们将简明的定义一下它们。 国际化* 是指为了该软件在任何地区的潜在使用而进行程序设计的过程。 它包括了为将来翻译而标记的文本(比如用户界面要素
本章包含创建一个django程序最必不可少的步骤 在服务器上部署它 如果你一直跟着我们的例子做,你可能正在用runserver 但是runserver 要部署你的django程序,你需要挂接到工业用的服务器 如:Apache 在本章,我们将展示如何做,但是,在做之前我们要给你一个(要做的事的)清单. 准备你的代码库 很幸运,runserver 但是,在开始前,有一些** 关闭Debug模式. 我们
从这一章我们开始 JSP 的学习之旅,还是和前面一样,先给大家讲解 JSP 的基础之后就开始我们的黑客技术的研究,并通过代码的分析从中找出 JSP 程序的漏洞。如果大家有 JAVA基础,那么学习 JSP 会感到比较轻松;如果没有学过 JAVA 也没有关系,跟着我的思路一样可以很好的完成 JSP 的基础学习。 大家如果注意观察的话,会发现使用 JSP 的网站数目在逐渐的增加,如图 12-1 所示,利
内容提要 本章主要讲解了http协议在传输的过程中,如何彼此理解对方发送的内容是采用什么字符集编写的,从而彼此能够进行正确的显示内容!由此介绍了相关的报文首部。 HTTP对国际性内容的支持 服务器通过HTTP协议的Content-Type首部中的charset参数和Content-Language首部告知客户端文档的字母表和语言。 字符集和HTTP 字符集是把字符转换为二进制码的编码,字符集标记在
通常我们把对象的非函数成员叫属性。 对于元素节点来说,其属性大体分为两类,固有属性与自定义属性(特性)。固有属性一般遵循驼峰命名风格,拥有默认值,并且无法删除。 自定义属性是用户随意添加的属性值对,由于元素节点也是一个普通的javascript对象,没有什么严格的访问操作,因此命名风格林林总总,值的类型也是乱七八糟。但是随意添加属性显然不够安全,比如引起循环引用等,因此,浏览器提供了一组API来供
javascript的核心API设计的很简单,但由于浏览器之间的不兼容性,导致客户端的API过于复杂。IE9的到来缓解了这种情况。然而使用javascript的框架或者工具类库,能简化通用操作,处理浏览器之间的差异,这让很多程序员在开发web应用时变得更简单。 jQuery类库被广泛的使用,作为web开发者,我们必须熟悉它:即便没有在自己的代码中遇到,也可能在别人的代码中遇见。幸运的是,jQuer
第十一章介绍了window对象及其客户端javascript所扮演的核心角色:它是客户端javascript程序的全局对象。本章介绍window对象的属性和方法,这些属性定义了不同的API,但是只有一部分实际上和浏览器窗口相关。window对象是以窗口命名的。 1节展示如何使用setTimeout()和setInterval()来注册一个函数,并在指定的时间后调用它。 2节讲述如何使用locati
我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。 但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。怎么办呢?这就是EM算法可以派上用场的地方了。 EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(
像上一章所展示的那样,许多简单的同步问题都可以用互斥体解决。这一章中我会介绍一个更大的挑战,著名的“生产者-消费者”问题,以及一个用于解决它的新工具,条件变量。 10.1 工作队列 在一些多线程的程序中,线程被组织用于执行不同的任务。通常它们使用队列来相互通信,其中一些线程叫做“生产者”,向队列中放入数据,另一些线程叫做“消费者”,从队列取出数据。 例如,在GUI应用中,可能有一个运行GUI的线程