2015年2月

磁盘冗余阵列(RAID)是将多个物理磁盘结合成一个逻辑磁盘的技术,该技术可以提高磁盘容错性能,提高磁盘的读写速度。根据数据存储的排列(如:条带存储,镜像存储,奇偶或者他们的组合),定义了几个不同级别的RAID(RAID-0,RAID-1,RAID-5 等等)。磁盘阵列可以使用软件或者硬件方式实现。现代Linux操作系统中,基本的软件RAID功能是默认安装的。

本文中,我们将介绍软件方式构建RAID-1阵列(镜像阵列),RAID-1将相同的数据写到不同的设备中。虽然可以使用同一个磁盘的两个分区实现RAID-1,但是如果磁盘坏了的话数据就都丢了,所以没什么意义。实际上,这也是为什么大多数RAID级别都使用多个物理磁盘提供冗余。当单盘失效后不影响整个阵列的运行,并且可以在线更换磁盘,最重要的是数据不会丢失。尽管如此,阵列不能取代外部存储的定期备份。

由于RAID-1阵列的大小是阵列中最小磁盘的大小,一般来说应该使用两个大小相同的磁盘来组建RAID-1。

安装mdadm

我们将使用mdadm(简称多盘管理)工具创建、组装、管理和监控软件RAID-1。在诸如Fedora、CentOS、RHEL或者Arch Linux 的发行版中,mdadm是默认安装的。在基于Debian的发行版中,可以使用aptitude 或者 apt-get 安装mdadm。

Fedora, CentOS 或 RHEL

由于adadm是预装的,所以我们只需要开启RAID守护服务,并将其配置成开机启动即可:

# systemctl start mdmonitor
# systemctl enable mdmonitor 

对于CentOS/RHEL 6系统,使用以下命令:

# service mdmonitor start
# chkconfig mdmonitor on 

Debian, Ubuntu 或 Linux Mint

在Debian或类Debian系统中,mdadm可以使用 aptitude 或者 apt-get 安装:

# aptitude install mdadm 

Ubuntu系统中,会要求配置Postfix MTA 以发送电子邮件通知。你可以跳过去。

Debian系统中,安装程序会显示以下解释信息,用来帮助我们去判断是否将根目录安装到RAID阵列中。下面的所有操作都有赖于这一步,所以应该仔细阅读他。

我们不在根目录使用RAID-1,所以留空。

提示是否开机启动阵列的时候,选择“是”。注意,这里需要往/etc/fstab 文件中添加一个条目使得系统启动的时候正确挂载阵列。

硬盘分区

现在开始准备建立阵列需要的硬盘。这里插入两个8GB的usb磁盘,使用dmesg命令设备显示设备 /dev/sdb 和 /dev/sdc

# dmesg | less 

[ 60.014863] sd 3:0:0:0: [sdb] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB) [ 75.066466] sd 4:0:0:0: [sdc] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB)

我们使用fdisk为每个磁盘建立一个大小为8G的主分区。以下步骤是如何在/dev/sdb上建立分区,假设次磁盘从未被分区(如果有其他分区的话,可以删掉):

# fdisk /dev/sdb 

按p键输出现在的分区表:

(如果有分区的话,可以使用 d 选项删除,w 选项应用更改)。

磁盘上没有分区,所以我们使用命令 ['n'] 创建一个主分区['p'], 分配分区号为['1'] 并且指定大小。你可以按回车使用默认值,或者输入一个你想设置的值。如下图:

用同样的方法为/dev/sdc 分区。

如果我们有两个不同容量的硬盘,比如 750GB 和 1TB的话,我们需要在每个磁盘上分出一个750GB的主分区,大盘剩下的空间可以用作他用,不加入磁盘阵列。

创建 RAID-1 阵列

磁盘分区完成后,我们可以使用以下命令创建 RAID-1 阵列:

# mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1 

说明:

  • -Cv: 创建一个阵列并打印出详细信息。
  • /dev/md0: 阵列名称。
  • -l1 (l as in "level"): 指定阵列类型为 RAID-1 。
  • -n2: 指定我们将两个分区加入到阵列中去,分别为/dev/sdb1 和 /dev/sdc1

以上命令和下面的等价:

 # mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 

如果你想在在磁盘失效时添加另外一个磁盘到阵列中,可以指定 '--spare-devices=1 /dev/sdd1' 到以上命令。

输入 “y” 继续创建阵列,回车:

可以使用以下命令查看进度:

 # cat /proc/mdstat 

另外一个获取阵列信息的方法是:

# mdadm --query /dev/md0
# mdadm --detail /dev/md0 (或 mdadm -D /dev/md0) 

'mdadm -D'命令提供的信息中,最重要就是阵列状态类。激活状态说明阵列正在进行读写操作。其他几个状态分别为:完成(读写完成)、降级(有一块磁盘失效或丢失)或者恢复中(一张新盘已插入,系统正在写入数据)。这几个状态涵盖了大多数情况。

格式化或加载磁盘阵列

下一步就是格式化阵列了,本例中使用ext4格式:

 # mkfs.ext4 /dev/md0 

现在可以加载阵列并验证其正常加载:

# mount /dev/md0 /mnt
# mount 

监控磁盘阵列

mdadm工具内置有磁盘阵列监控功能。当mdadm作为守护程序运行的时候(就像我们上文那样),会周期性的检测阵列运行状态,将检测到的信息通过电子邮件或者系统日志报告上来。当然,也可以配置其在发生致命性错误的时候调用紧急命令。

mdadm默认会记录所有已知分区和阵列的事件,并将他们记录到 /var/log/syslog中。或者你可以在配置文件中(debian系统:/etc/mdadm/mdadm.conf ,红帽子系统:/etc/mdadm.conf )用以下格式指定监控设备或者阵列。如果mdadm.conf文件不存在,你可以创建一个。

DEVICE /dev/sd[bcde]1 /dev/sd[ab]1

ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1
ARRAY /dev/md1 devices=/dev/sdd1,/dev/sde1
.....

# optional email address to notify events
MAILADDR [email protected]

编辑完毕mdadm配置文件后,重启mdadm服务:

Debian系统,Ubuntu或者Linux Mint:

# service mdadm restart

Fedora, CentOS 或 RHEL 7:

# systemctl restart mdmonitor

CentOS或者RHEL 6:

# service mdmonitor restart 

自动加载阵列

现在我们在/etc/fstab中加入条目使得系统启动的时候将阵列挂载到/mnt目录下:

# echo "/dev/md0 /mnt ext4 defaults 0 2" << /etc/fstab 

为了验证挂载脚本工作正常,我们首先卸载阵列,重启mdadm,然后重新加载。可以看到/dev/md0已经安装我们添加到/etc/fstab中的条目加载了:

# umount /mnt
# service mdadm restart (on Debian, Ubuntu or Linux Mint)
or systemctl restart mdmonitor (on Fedora, CentOS/RHEL7)
or service mdmonitor restart (on CentOS/RHEL6)
# mount -a 

现在我们的阵列已经可以访问了,拷贝文件/etc/passwd到/mnt中测试一下:

Debian系统中,需要在/etc/default/mdadm 设置 AUTOSTART 变量为 true 才能使mdadm守护程序在开机时自动加载阵列:

AUTOSTART=true

模拟磁盘丢失故障

我们将使用以下命令卸载磁盘来模拟磁盘故障。注意,在实际应用中,磁盘如果已经是故障状态了,不需要卸载。

首先,卸载阵列:

# umount /mnt 

现在注意每次执行命令后 'mdadm -D /dev/md0' 的输出。

# mdadm /dev/md0 --fail /dev/sdb1 # 标记 /dev/sdb1 为失效
# mdadm --remove /dev/md0 /dev/sdb1 # 从阵列中移走 /dev/sdb1 

然后,如果你有个备用盘的话,重新添加一下:

 # mdadm /dev/md0 --add /dev/sdb1 

数据会被自动添加到备用盘 /dev/sdb1 上:

注意以上所述步骤只适合支持磁盘热拔插的系统,在不支持热拔插的系统中,还是得停止阵列并关机后更换备用盘:

# mdadm --stop /dev/md0
# shutdown -h now 

最后将新驱动器重新添加到阵列中:

# mdadm /dev/md0 --add /dev/sdb1
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 

希望本文对你有所帮助。


via: http://xmodulo.com/2014/09/create-software-raid1-array-mdadm-linux.html

作者:Gabriel Cánepa 译者:shipsw 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

解决办法通常没有那么难

Grooveshark 对于喜欢音乐的人来说是一个不错的在线平台,同时有多种从上面下载音乐的方法。Groovesquid 是众多允许用户从 Grooveshark 上下载音乐的应用之一,并且是支持多平台的。

只要有在线流媒体服务,就一定有方法将你看过或听过的视频及音乐保存到本地。即使下载接口关闭了,也不是什么大不了的事,因为还有很多种解决方法,无论你用的什么操作系统。比如,网络上就有许多种 YouTube 下载器,同样的道理,从 Grooveshark 上下载音乐也并非难事。

现在,得考虑合法性的问题。与许多其他应用一样,Groovesquid 并非是完全不合法的。如果有用户使用应用去做一些非法的事情,那责任应归咎于用户。同样的道理也适用于 utorrent 或者 Bittorrent。只要你不触及版权问题,那你就可以无所顾忌的使用 Groovesquid 了。

快捷高效的 Groovesquid

你能够找到的 Groovesquid 的唯一缺点是,它是基于 Java 而编写的,这从来都不是一个好的兆头。虽然为了确保应用的可移植性这样做确实是一个好方法,但这样做的结果导致了其糟糕的界面。确实是非常糟糕的的界面,不过这一点并不会影响到用户的使用体验,特别是这款应用所完成的工作时如此的有用。

有一点需要注意的地方。Groovesquid 是一款免费的应用,但为了将免费保持下去,它会在菜单栏的右侧显示一则广告。这对大多数人来说都应该不是问题,不过最好在打开应用后注意下菜单栏右侧(那不是应用的一部分)。

从易用性的角度来看,这款应用非常简洁。用户可以通过在顶部地址栏里输入链接直接下载单曲,地址栏的位置可以通过其左侧的下拉菜单进行修改。在下拉菜单中,也可以修改为歌曲名称、流行度、专辑名称、播放列表以及艺术家。有些选项向你提供了诸如查看 Grooveshark 上最流行的音乐,或者下载整个播放列表等。

你可以下载 Groovesquid 0.7.0

  • jar 文件大小:3.8 MB
  • tar.gz 文件大小:549 KB

下载完 Jar 文件后,你所需要做的是将其权限修改为可执行,然后让 Java 来完成剩下的工作。

via: http://news.softpedia.com/news/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268.shtml

作者:Silviu Stahie 译者:Stevearzh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

最好的方式来自定义你的 Linux 桌面就是使用自定义主题。假如你在 Ubuntu 14.04 中安装 GNOME 或 在 Ubuntu 14.10 中安装了 GNOME,你或许想改变默认的主题以呈现出不同的外观。在这里,为了帮助你完成该任务,我已经编制好了一个列表—— Ubuntu 或其他已经安装了 GNOME shell 的 Linux 操作系统中,最好的 GNOME Shell 主题 。但在我们揭晓这份列表之前, 让我们先了解如何在 GNOME shell 中安装和应用新的主题。

在 GNOME Shell 中安装主题

要在带有 GNOME 桌面的 Ubuntu 中安装新的主题,你可以使用 Gnome Tweak Tool,它可以在 Ubuntu 软件库中得到。打开一个终端窗口并使用如下命令:

sudo apt-get install gnome-tweak-tool

或者,你可以通过把主题放置到 ~/.themes 目录中来使用。如果你需要,我已经写了一个关于 如何安装和使用 GNOME shell的具体教程。

最好的 GNOME Shell 主题

下面列举的主题都已经在 GNOME Shell 3.10.4 上进行了测试,但对于任何版本的 GNOME 3 或更高的版本,它们应该同样适用。需要指出的是,这些主题并没有按照任何优先顺序排列。下面就让我们看看这些最好的 GNOME 主题:

Numix

任何没有提到 Numix 主题 的列表都是不完整的。这个主题是如此地受欢迎以至于 Numix 团队开发出一个新的 Linux 操作系统, Ozon。考虑到他们的设计作品 Numix 主题,把不久将发行的 Ozon 称为 最美丽的 Linux 操作系统 也不为过。

使用下面的命令,在基于 Ubuntu 的发行版本中安装 Numix 主题:

sudo apt-add-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-icon-theme-circle

Elegance Colors

另一个美丽主题来自 Numix 团队成员之一 Satyajit Sahoo。Elegance Colors 拥有自己的 PPA (译者注: 即 Personal Package Archive 的缩写) 使得你可以轻松安装它:

sudo add-apt-repository ppa:satyajit-happy/themes
sudo apt-get update
sudo apt-get install gnome-shell-theme-elegance-colors

Moka

Moka 是另一个迷人的主题,它总是位于美丽的主题列表之中。它是由 Unity Tweak Tool 的开发者所设计。 Moka 是你一定要尝试的主题:

sudo add-apt-repository ppa:moka/stable
sudo apt-get update
sudo apt-get install moka-gnome-shell-theme

Viva

基于 GNOME 的默认主题 Adwaita, Viva 是一个带有黑色和橙色阴影的美丽主题。你可以从下面的链接中下载 Viva:

Ciliora-Prima

以前它以 Zukitwo Dark 的名字为人们熟知, Ciliora-Prima 是一个拥有方块图标的主题,可使用的三种版本之间彼此略有不同。你可以从下面的链接中下载它们:

Faience

Faience 作为一个受欢迎的主题已经有一段时间了。你可以通过下面的 PPA 为 GNOME 3.10 及更高版本安装 Faience:

sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update
sudo apt-get install faience-theme

Paper [不完善]

自从 Google 提出 Material Design,人们一直为之疯狂。Paper GTK 主题受 Google Material design 启发,作者为 Sam Hewitt( Moka 项目开发者之一);它正处于开发中,这意味着当前你还不能拥有 Paper 的最好体验。假如你和我一样,具有一点实验精神,你绝对可以试一试。

sudo add-apt-repository ppa:snwh/pulp
sudo apt-get update
sudo apt-get install paper-gtk-theme

以上就是我的列表。如果你正试着给你的 Ubuntu 换一个不同的模样,你也应该试试这个列表: Ubuntu 14.04 中最好的图标主题

你是怎样找到这份 最好的 GNOME shell 主题 列表的呢?在上面列举的主题中,哪个是你最中意的? 如果它没有在这里列出,请一定在评论中告诉我们哪个是你心目中最好的 GNOME shell 主题 。


via: http://itsfoss.com/gnome-shell-themes-ubuntu-1404/

作者:Abhishek 译者:FSSlc 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

掐指一算,浪(gai)漫(si)的情人节就要到来,送玫瑰你就out了,更何况满街的“玫瑰”可能是月季。@Linux中国 @图灵教育 精心为大家选了9本适合情侣一起阅读的图书,转发此微博@ 一位异性(同性也不介意:-D)说出你的真情告白,即有机会获赠以下图书。

微博地址:http://weibo.com/1772191555/C3Y7upyL1

活动时间:2015年2月12日-2015年2月20日

特此注意:

微博用户参与活动,注意查看@Linux中国\_笑语彦然 微博公布的中奖名单或留意您的微博私信。我们会通过微博私信的方式获取您的邮寄信息。

1、Hello Kitty的秘密

内容简介:《Hello Kitty的秘密》是对Hello Kitty的诞生成长和三丽鸥的经营策略的全景式分析记录。作者以Hello Kitty的成长进程为主线,通过对三丽鸥创始人、Hello Kitty之父辻信太郎,Hello Kitty第三代设计师山口裕子,三丽鸥欧美、日本相关运营负责人的独家访谈以及相关资料,剖释了三丽鸥的全球品牌经营策略,以及Kitty作为日本“卡哇伊”文化符号背后深切的经济与文化价值。

试读章节:http://images.china-pub.com/ebook3800001-3805000/3804146/ch01.pdf

购买链接:http://product.china-pub.com/3804146

2、不脑残科学

内容简介:《不脑残科学》从科学的角度,对身体、两性、亲子、心理、饮食、大脑等不同层面的问题进行深入探讨,有理、有趣,有用、有效。科学思维还将有助于提升思考力和判断力,引领你发现一个全新的世界。

试读章节:http://images.china-pub.com/ebook3770001-3775000/3770064/ch01.pdf

购买链接:http://product.china-pub.com/3770064

3、番茄工作法图解:简单易行的时间管理方法

内容简介:《番茄工作法图解:简单易行的时间管理方法》介绍了时下最流行的时间管理方法之一—番茄工作法。作者根据亲身运用番茄工作法的经历,以生动的语言,传神的图画,将番茄工作法的具体理论和实践呈现在读者面前。番茄工作法简约而不简单,本书亦然。在番茄工作法一个个短短的25分钟内,你收获的不仅仅是效率,还会有意想不到的成就感。
《番茄工作法图解:简单易行的时间管理方法》适合所有志在提高工作效率的人员,尤其是软件工作人员和办公人员。

试读章节:http://yuedu.baidu.com/ebook/b62b3360f46527d3240ce0d8?fr=aladdin&f=read

购买链接:http://product.china-pub.com/3804113

4、跟阿铭学Linux

内容简介:这是一本真正入门级的Linux学习教材!通俗易懂的语言,手把手的操作指导,同步巩固练习,同步视频教程,专门为零基础读者而写,经过无数学员验证的最佳启蒙书。
本教程由浅入深,内容精湛,案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会迅速上手。对于有工作经验的人,它也是一本详尽的工具书,助你解决工作当中的一些需求和难题,让你受益匪浅。

试读章节:http://images.china-pub.com/ebook3770001-3775000/3770553/ch01.pdf

购买链接:http://product.china-pub.com/3770553

5、AKB48的格子裙经济学:粉丝效应中的新生与创意

内容简介:《AKB48的格子裙经济学:粉丝效应中的新生与创意》深入浅出解读了日本少女偶像团体AKB48,以总体与个体相结合的角度分析了AKB48的成长历程,并将AKB48与“早安少女组”加以对照,探究日本“偶像经济”与“粉丝效应”的启示。
AKB48是什么?
AKB48为何能国民消费意愿最低的通货紧缩时期创造经济奇迹?
AKB48的持续性成功,源于什么继生性力量?
《AKB48的格子裙经济学:粉丝效应中的新生与创意》深入浅出解读了日本少女偶像团体AKB48,以总体与个体相结合的角度分析了AKB48的成长历程、模式创新、内部结构、偶像与粉丝的关系、单体成员的个性化“小故事”模式,并将AKB48与“早安少女组”加以对照,探究日本“偶像经济”与“粉丝效应”的启示,可以让读者对AKB48有更加深入的本源性认识。

试读样张:http://images.china-pub.com/ebook3770001-3775000/3770453/ch01.pdf

购买链接:http://product.china-pub.com/3770453

6、南极观察图鉴:冰雪大陆的奇幻之旅

内容简介:南极大陆有着怎样的独特景致?这些奇妙现象是如何形成的?《南极观察图鉴:冰雪大陆的奇幻之旅》作者为日本气象学家,参加了日本第50次南极科学考察,书中以图片与科普短文的形式记录了南极的气候、地质、生物等,这些南极科考期间拍摄到的照片呈现了大自然不可思议的壮美,让人惊叹不已,与图片配合的科普文章又从科学的角度解析了这些奇妙现象的成因。

试读章节:http://images.china-pub.com/ebook3770001-3775000/3770893/ch01.pdf

购买链接:http://product.china-pub.com/3770893

7、如何变得有思想:阮一峰博客文集

内容简介:《如何变得有思想:阮一峰博客文集》为阮一峰博客选集,囊括了作者对各种问题的思考,围绕的主题是试图理解这个世界。本书内容非常广泛,涉及文学、历史、科技、影视等方面。作者在书中对具有深刻意义的文字进行摘录,并且在思索后提出自己独特的观点。书后附有阮一峰诗集。
《如何变得有思想:阮一峰博客文集》适合喜欢独立思考、热爱读书的读者,对于广大读者具有一定的启发作用。

试读章节:http://images.china-pub.com/ebook3770001-3775000/3770731/ch01.pdf

购买链接:http://product.china-pub.com/3770731

8、我们要自学

内容简介:自学者,英文称之为 autodidact,意为自己教育自己的人。大部分人都会在某个时刻走出学校,开始工作,也开启自学的人生。在自学的时候,没有制订好的教材,没有老师,没有同学,怎么来确保更高效的学习呢?这本书讲述的就是这样一套学习方法论,用于帮助你形成自己的学习和自学方法。除此之外,书中还介绍了一些利用信息科技来帮助学习的方法,助你成为一个更好的自学者。
《我们要自学》适合各个年龄段需要学习某项技能的读者。

试读章节:http://images.china-pub.com/ebook3770001-3775000/3770738/ch02.pdf

购买链接:http://product.china-pub.com/3770738

9、写给大家看的设计书(第3版)

内容简介:《写给大家看的设计书(第3版)》出自世界级设计师Robin Williams 之手。复杂的设计原理在本书中凝炼为亲密性、对齐、重复和对比4 个基本原则。作者以其简洁明快的风格,将优秀设计所必须遵循的这4 个基本原则及其背后的原理,通俗易懂地展现在读者面前。本书包含大量的示例,让你了解怎样才能按照自己的方式设计出美观且内容丰富的产品。
《写给大家看的设计书(第3版)》适用于各行各业需要从事设计工作的读者,也适用于有经验的设计人员。

试读章节:http://images.china-pub.com/ebook3800001-3805000/3803760/ch01.pdf

购买链接:http://product.china-pub.com/3803760

WebSVN为你的Subversion提供了一个视图,其设计用来对应Subversion的各种功能。你可以检查任何文件或目录的日志,以及查看任何指定版本中所修改、添加或删除过的文件列表。你也可以检查同一文件两个版本的不同之处,以便确切地查看某个特定的修订版本的变化。

特性

WebSVN提供了以下这些特性:

  • 易于使用的界面;
  • 可自定义的模板系统;
  • 彩色文件列表;
  • 过错视图;
  • 日志信息搜索;
  • 支持RSS订阅;

安装

我按以下链接来将Subversion安装到CentOS 7。

1 – 下载websvn到/var/www/html。

cd /var/www/html
wget http://websvn.tigris.org/files/documents/1380/49057/websvn-2.3.3.zip

2 – 解压zip包。

unzip websvn-2.3.3.zip
mv websvn-2.3.3 websvn

3 – 安装php到你的系统。

yum install php

4 – 编辑web svn配置。

cd /var/www/html/websvn/include
cp distconfig.php config.php
vi config.php

// Configure these lines if your commands aren't on your path.
//
 $config->setSVNCommandPath('/usr/bin'); // e.g. c:\\program files\\subversion\\bin
 $config->setDiffPath('/usr/bin');

// For syntax colouring, if option enabled...
 $config->setEnscriptPath('/usr/bin');
 $config->setSedPath('/bin');

// For delivered tarballs, if option enabled...
 $config->setTarPath('/bin');

// For delivered GZIP'd files and tarballs, if option enabled...
 $config->setGZipPath('/bin');

//
 $config->parentPath('/svn/');

$extEnscript[".pl"] = "perl";
$extEnscript[".py"] = "python";
$extEnscript[".sql"] = "sql";
$extEnscript[".java"] = "java";
$extEnscript[".html"] = "html";
$extEnscript[".xml"] = "html";
$extEnscript[".thtml"] = "html";
$extEnscript[".tpl"] = "html";
$extEnscript[".sh"] = "bash";
~

保存并退出。

6 – 重新加载apache并启动websvn链接http://ip/websvn

websvn

一切搞定。


via: http://www.unixmen.com/install-websvn-centos-7/

作者:M.el Khamlichi 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

如果你想要在Linxu中获得一个高效、自动化、高质量的科学画图的解决方案,应该考虑尝试下matplotlib库。Matplotlib是基于python的开源科学测绘包,基于python软件基金会许可证发布。大量的文档和例子、集成了Python和Numpy科学计算包、以及自动化能力,是作为Linux环境中进行科学画图的可靠选择的几个原因。这个教程将提供几个用matplotlib画图的例子。

特性

  • 支持众多的图表类型,如:bar,box,contour,histogram,scatter,line plots....
  • 基于python的语法
  • 集成Numpy科学计算包
  • 数据源可以是 python 的列表、键值对和数组
  • 可定制的图表格式(坐标轴缩放、标签位置及标签内容等)
  • 可定制文本(字体,大小,位置...)
  • 支持TeX格式(等式,符号,希腊字体...)
  • 与IPython相兼容(允许在 python shell 中与图表交互)
  • 自动化(使用 Python 循环创建图表)
  • 用Python 的循环迭代生成图片
  • 保存所绘图片格式为图片文件,如:png,pdf,ps,eps,svg等

基于Python语法的matplotlib是其许多特性和高效工作流的基础。世面上有许多用于绘制高质量图的科学绘图包,但是这些包允许你直接在你的Python代码中去使用吗?除此以外,这些包允许你创建可以保存为图片文件的图片吗?Matplotlib允许你完成所有的这些任务。从而你可以节省时间,使用它你能够花更少的时间创建更多的图片。

安装

安装Python和Numpy包是使用Matplotlib的前提,安装Numpy的指引请见该链接

可以通过如下命令在Debian或Ubuntu中安装Matplotlib:

$ sudo apt-get install python-matplotlib 

在Fedora或CentOS/RHEL环境则可用如下命令:

$ sudo yum install python-matplotlib 

Matplotlib 例子

本教程会提供几个绘图例子演示如何使用matplotlib:

  • 离散图和线性图
  • 柱状图
  • 饼状图

在这些例子中我们将用Python脚本来执行Mapplotlib命令。注意numpy和matplotlib模块需要通过import命令在脚本中进行导入。

np为nuupy模块的命名空间引用,plt为matplotlib.pyplot的命名空间引用:

import numpy as np
import matplotlib.pyplot as plt

例1:离散和线性图

第一个脚本,script1.py 完成如下任务:

  • 创建3个数据集(xData,yData1和yData2)
  • 创建一个宽8英寸、高6英寸的图(赋值1)
  • 设置图画的标题、x轴标签、y轴标签(字号均为14)
  • 绘制第一个数据集:yData1为xData数据集的函数,用圆点标识的离散蓝线,标识为"y1 data"
  • 绘制第二个数据集:yData2为xData数据集的函数,采用红实线,标识为"y2 data"
  • 把图例放置在图的左上角
  • 保存图片为PNG格式文件

script1.py的内容如下:

import numpy as np
import matplotlib.pyplot as plt

xData = np.arange(0, 10, 1)
yData1 = xData.__pow__(2.0)
yData2 = np.arange(15, 61, 5)
plt.figure(num=1, figsize=(8, 6))
plt.title('Plot 1', size=14)
plt.xlabel('x-axis', size=14)
plt.ylabel('y-axis', size=14)
plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data')
plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data')
plt.legend(loc='upper left')
plt.savefig('images/plot1.png', format='png')

所画之图如下:

例2:柱状图

第二个脚本,script2.py 完成如下任务:

  • 创建一个包含1000个随机样本的正态分布数据集。
  • 创建一个宽8英寸、高6英寸的图(赋值1)
  • 设置图的标题、x轴标签、y轴标签(字号均为14)
  • 用samples这个数据集画一个40个柱状,边从-10到10的柱状图
  • 添加文本,用TeX格式显示希腊字母mu和sigma(字号为16)
  • 保存图片为PNG格式。

script2.py代码如下:

import numpy as np
import matplotlib.pyplot as plt

mu = 0.0
sigma = 2.0
samples = np.random.normal(loc=mu, scale=sigma, size=1000)
plt.figure(num=1, figsize=(8, 6))
plt.title('Plot 2', size=14)
plt.xlabel('value', size=14)
plt.ylabel('counts', size=14)
plt.hist(samples, bins=40, range=(-10, 10))
plt.text(-9, 100, r'$\mu$ = 0.0, $\sigma$ = 2.0', size=16)
plt.savefig('images/plot2.png', format='png')

结果见如下链接:

例3:饼状图

第三个脚本,script3.py 完成如下任务:

  • 创建一个包含5个整数的列表
  • 创建一个宽6英寸、高6英寸的图(赋值1)
  • 添加一个长宽比为1的轴图
  • 设置图的标题(字号为14)
  • 用data列表画一个包含标签的饼状图
  • 保存图为PNG格式

脚本script3.py的代码如下:

import numpy as np
import matplotlib.pyplot as plt

data = [33, 25, 20, 12, 10]
plt.figure(num=1, figsize=(6, 6))
plt.axes(aspect=1)
plt.title('Plot 3', size=14)
plt.pie(data, labels=('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5'))
plt.savefig('images/plot3.png', format='png')

结果如下链接所示:

总结

这个教程提供了几个用matplotlib科学画图包进行画图的例子,Matplotlib是在Linux环境中用于解决科学画图的绝佳方案,表现在其无缝地和Python、Numpy连接、自动化能力,和提供多种自定义的高质量的画图产品。matplotlib包的文档和例子详见这里


via: http://xmodulo.com/matplotlib-scientific-plotting-linux.html

作者:Joshua Reed 译者:ideas4u 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出