白银每天能卖掉上千串的铁板鱿鱼须,你们知道在哪里吗

&figure&&img src=&https://pic4.zhimg.com/v2-fb5146afe1336dbceb76ae_b.jpg& data-rawwidth=&489& data-rawheight=&456& class=&origin_image zh-lightbox-thumb& width=&489& data-original=&https://pic4.zhimg.com/v2-fb5146afe1336dbceb76ae_r.jpg&&&/figure&&blockquote&&p&本文作者为&a href=&https://link.zhihu.com/?target=https%3A//www.jisuanke.com& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&计蒜客&/a&教学研究团队成员。&/p&&p&这是计蒜客《咸鱼翻身——编程自学指南》的第一篇。《咸鱼翻身——编程自学指南》是一个旨在帮助有志于提高编程水平和从事开发工作,但是缺乏学习资源和指导的学习者。&/p&&p&更多内容,敬请关注专栏 &a href=&https://zhuanlan.zhihu.com/jisuanke& class=&internal&&代码视界&/a&&/p&&/blockquote&&p&以下是正文&/p&&p&你是否符合以下情况?&br&&/p&&ul&&li&大学计算机相关专业,对本校提供的教学资源不满意,或者大学其他专业学生,想要从事开发相关工作的本科生&/li&&li&有较为充足的时间,但是缺乏学习资源(这里指的“资源”并不是书本或其他学习资料,而是真正意义上的“教学资源”:学校提供的上机环境、合格的老师和助教,乃至于上进心和姿势水平都足够高的同学等)&/li&&/ul&&p&如果符合,那么这篇文章将会对你有很大的帮助&/p&&p&我将首先给出一些基本的指导思想,然后介绍一个具体的学习方法路线图。本文将最大限度地保证这些方法具有尽可能强的可操作性。&br&&/p&&h3&&b&两种不同的学习路线&/b&&/h3&&p&通过自学成为开发行业从业者,有“正向”和“反向”两种路线:&/p&&ul&&li&&b&反向路线&/b&——指的是绕过一系列基础知识,直接从上层应用方向,以工程为导向开始学习和实践,直接参与开发工作,然后根据实际需要逐渐补充计算机科学知识;&br&&/li&&li&&b&正向路线&/b&——指的是从基础开始,按照计算机专业培养计划,系统地依次学习。&br&&/li&&/ul&&br&&p&一般而言,&b&正向路线比起反向路线,相对来说更加“安全”&/b&,&b&更加不容易出现计算机科学基础知识的短板&/b&——但是缺点也是很明显的:&b&入门难度更大,门槛更高,时间容忍度也更低&/b&。&/p&&p&在实践中,两种路线各有千秋,既不能互相取代,也绝非互不相容——&b&这篇文章将以正向路线为主进行详细的说明&/b&,本专栏后续的文章将会邀请一些现役工程师来介绍反向路线的相关思想方法。&/p&&h3&&b&正向路线的三个基本法&/b&&/h3&&p&关于“如何自学编程”类似的话题,在很多社区都已经有了不止一次的讨论——为什么同一个问题会有不止一次的讨论呢?这当然是因为,当读者们按照前辈们给出的书单开始读书上课,之后没多久就会受到这样那样的打击,最后信心耗尽而彻底放弃。大多数前辈自身的姿势水平高,人生经验丰富,因此不可避免地会犯下这样一个错误——过高估计了读者们的学习能力和信心。&/p&&p&不光是写 Guideline 的前辈,读者自身也要注意——永远不要高估自己的学习能力和信心(或者说,学习热情)。只有能完成的课程,能看完的书才有意义——负载过大,无法完成的课程,就算再怎么优秀也是弊大于利的。因此,在路线和方法的选择上,一定要以以下的三个基本法为基本的指导原则:&/p&&p&&b&1、永远不要假设自己有足够的热情(信心保护)&/b&&/p&&p&前面说过,正向路线的缺点,在于入门难度更大,门槛更高——毕竟,同样是输出“Hello World”,一个漂亮的网页页面,总比黑乎乎的命令行更好看,也更让人有成就感。&/p&&p&在知乎和其他的一些跟编程学习相关的社区,总能看到有各式各样的大神,给新手们传递着这样那样的人生经验:&/p&&ul&&li&“编程入门一定要从 gcc+Vim 开始”、&/li&&li&“萌新学习 C++ 请认准《C++ Primer》”、&/li&&li&“&a href=&https://www.zhihu.com/question/& class=&internal&&大一学生要写一个 500-1000 行的课程作业,让我们先从一个小目标开始——比如实现一个编译器&/a&” :&/li&&/ul&&p&诸如此类言论,不胜枚举——通常还会附加“连这点东西都学不会,以后就别想着学 CS 了”之类的论断。&/p&&p&不得不说,大神们的出发点确实是好的,这些建议也确实是有一定的合理性——但是,这些做法有一个重要的前提,那就是“大力出奇迹”,假设读者都拥有无限的学习能力和无限的热情……然而,理想很丰满,现实却很骨感——大神们初中学习编程,高中就能写出一个成型的编译器,然而现实中的大部分人学生都不具备这样的能力……&/p&&p&一个人的命运,当然要靠自我的奋斗,但也要考虑到历史的行程——对于名校 CS 专业的学生来说,他们就算自身的才能并不出众,至少也有“安全网”在保护他们:老师在上课的时候会重点地强调需要注意的问题,助教在上机的时候会手把手地教他们正确的做法,甚至身边才能出众的同学,也可以让他们“抱大腿”……然而,对于本文的读者来说,这一切都不存在。&/p&&p&孤独而脆弱,是本文读者普遍具有的特点——任何一个看起来微不足道的小挫折,都可能挫伤他们的信心和热情,当这两者降到 0 的时候,他们的学习道路便到此为止了,以后想要再一次出发将会变得非常困难,甚至完全不可能。&/p&&p&因此,对于本文的读者,在路线的选择上,一定要做到循序渐进,从小到大,在初学阶段尽可能地挑选不容易踩坑的路线,从第一个 Hello World 开始,通过不断地获得正向反馈来提高自己的能力和信心——在后续的内容中,我们将会应用这一原则,向大家推荐合适的路线。&/p&&p&&b&2、确保你学到的东西都是性价比最高的内容(高性价比学习)&/b&&/p&&p&这里的“性价比”包括两个概念,其一是知识的可迁移性,其二是知识的可使用性。&/p&&p&所谓“可迁移性”,指的就是软件开发领域,那些共通的,放之四海皆准的内容——C 家族语言的语法,编程的熟练度、思想和方法,以及计算机科学专业知识,都是具有可迁移性的内容,而具体的某某框架的 API 用法则不是。&/p&&p&而“可使用性”则是另一个概念——它的含义是,这部分知识能不能立竿见影地帮助你增加代码量。很多大神都提到过,一个好的程序员必须有 XX 万的代码量——这确实是对的,但是反过来却不一定成立:如果这个世界有数万种编程语言,那么你用每一种语言都写一遍 Hello World,那么你的代码量也能达到大神说的数字——但是这代表你就有对应的编程能力吗?答案显然是否定的。&/p&&p&所谓“好的程序员必须有 XX 万的代码量”,更进一步地说,好的程序员必须要写数量和种类都足够多的程序。而就像上文中贴出的那个链接一样,大一学生刚学完 C 语言,如果想要写一个 500-1000 行代码的大作业,最后真的能完成的也只有“图书馆信息管理系统”这样的,看起来很“low”的程序——因为只使用基本的 C 语言语法和标准库,你是很难写出非常复杂的程序的。这个时候,就需要你学习更多的计算机科学知识,来拓展你可以编写的程序的广度与深度了……&/p&&p&你必须明白,学习的目的是为了提高自己的开发能力,让自己能够写出更大更好的程序。因此,对于走正向路线的读者来说,在没有项目牵引的前提下,对于流行技术和框架的学习应该有所节制,切忌贪多嚼不烂,千万不要陷入到“用更多的语言/框架写 HelloWorld”的陷阱中。&/p&&p&关于这条原则的应用,将与下一条原则一起进行说明。&/p&&p&&b&3、循序渐进地学习新知识,选择新目标(最低耦合)&/b&&/p&&p&@姚冬 前辈在&a href=&https://www.zhihu.com/question//answer/& class=&internal&&这个答案 &/a&中说过:&/p&&blockquote&千万别把编程看作知识,计算机科学是知识,但是编程是手艺。&br&既然是手艺就要用学手艺的思路去学习。&br&&br&以动手练习为主,看书学习为辅,甚至极端点,初学的时候除了看必要的文档都可以不看书,等有了一定编程基础后再去看书,看完书立刻动手编程去验证书上的理论知识。&br&练习一定要循序渐进,把手艺分解成几个简单的动作,反复练习直到熟练,然后再把基本动作组合起来练习直到熟练。拿C语言举例,比如从认真写好一个Hello world开始,然后去熟悉 if
for while 等基本关键字,然后熟悉字符串操作,内存操作,练习查找 排序 二叉树等基本算法数据结构,然后学习一个小型Framework。。。。&br&&br&作者:姚冬&br&链接:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&zhihu.com/question/2757&/span&&span class=&invisible&&4436/answer/&/span&&span class=&ellipsis&&&/span&&/a&&br&来源:知乎&br&著作权归作者所有,转载请联系作者获得授权。&/blockquote&&p&事实上,这个“循序渐进”的过程,对于计算机科学知识的学习也是一样的。&/p&&blockquote&玩过《使命召唤:现代战争 2》的读者,应该记得雪山潜入战役中的操作——玩家控制人物,鼠标左右键分别对应人物左右手手持的冰镐,而爬山的正确操作显然是轮换点击左右键,左冰镐插在山体内,拔出右冰镐向上勾,右冰镐插进去之后再拔出左冰镐,这样周而复始,一步一步地就能爬到山顶。而如果左右冰镐都松开的话,结局显然就是掉下山崖——同样,学习路线的选择也是一样的。&/blockquote&&p&不管是计算机科学知识还是某个领域的技能,都有其所前置依赖的知识或者技能。一个好的学习路线应该做到,&strong&每一次前进都只迈出一步——即每一次新学习的内容都不依赖你所没有掌握的知识、每一次新的编程练习需要掌握的新知识都尽可能少&/strong&。&/p&&p&举个简单的例子——很多大神都在强调,初学者学习《数据结构与算法》这门课程的重要性,但是实际上,对于读者来说,学习数据结构与算法的意义,其实并不是因为它的重要性,而是因为它同时满足了高性价比学习和最低耦合这两条原则——在计算机科学领域,你很难再找到另一块“完美”的课程了:&/p&&ul&&li&抽象数据类型的实现,并不依赖于具体的语言——换句话说这门课程的可迁移性极高,在任何语言中都可以使用&/li&&li&学习这门课程之后,你就可以去各大 OJ 平台刷题了——只要有这一门课程的知识,就可以在短时间内大幅提高你的代码量,可使用性极高&/li&&li&这门课程实际需要的前置知识和技能,只有基本的编程基础——会离散数学更好,但它并不是必须的&/li&&/ul&&p&接下来,我将结合这三个基本法,介绍一条实际可行的,正向学习路线:&/p&&h3&&b&一条可行的正向路线&/b&&/h3&&p&先给大家讲一个笑话:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&女生学编程为什么难?是思维方式不对还是学习方式不对?
编译器:「你有个错误。」
女生:「不可能!」
编译器:「你听我解释。」
女生:「我不听我不听我不听!」
编译器:「……」
女生:「你是不是不爱我了?你肯定和别的程序员好上了!」
&/code&&/pre&&/div&&p&这虽然是一则笑话,但却反映了一个现实的问题——&b&相当一部分人,无论男女,都缺乏解决问题的思维方式。&/b&&/p&&p&&b&# 程序员应该具备的基本能力&/b&&/p&&p&开发工作本质上是通过编程来解决问题,所以在开始之前,你首先要确保,你拥有最低限度的,解决问题的 Power User 的思维方式——具体地说,你要拥有以下三个方面的能力:&/p&&ul&&li&&b&最起码的分析能力&/b&——你不能像个文盲一样,连显示屏上明显的文字提示(很多提示原本就是中文的)都视而不见,而只会盲目地问些“我的程序运行不了怎么办”之类的毫无意义的问题——这跟上文的笑话中,女生说的“你不是不爱我了?”一样毫无意义。一名 Power User 问出的问题,应该是“我的程序运行报错,编译器提示 error XX”这样有信息量、有价值的问题。&/li&&li&&b&最基本的英语阅读能力&/b&——在计算机科学的世界里,很多内容都是英文的,你至少要能够借助翻译工具读懂这些英文材料……事实上,计算机科学中使用的英文并不难,除了少数专有名词之外,其他的内容还是很浅显易懂的,这一点大家无需害怕。&/li&&li&&b&起码的信息检索能力&/b&——在现代社会,即使是你不打算从事计算机科学相关工作,如果你连使用搜索引擎检索关键字的能力都没有的话,那么你迟早会被这个社会所淘汰。&/li&&/ul&&p&举个实际一点的例子:在开始编程之前,你至少应该会使用 U 盘,给一台 PC 安装操作系统——因为“如何安装 Windows”这样的问题,并不依赖于计算机专业知识,而且其解决方案在互联网上满坑满谷到处都是,就算用百度都可以很容易地搜索到正确的方案。如果连这一点都做不到的话,那么你可能确实缺乏学习编程的能力……&/p&&p&&b&# 第一行代码:选择语言与环境&/b&&/p&&p&「学编程应该学哪门语言?」这经常是初学者问的第一个问题——这里首先直接给出答案:使用一种较为现代的,面向对象的 C 家族语言来入门:具体来说就是选择 JAVA 或者 C++ 的一部分主要内容。&/p&&p&为什么这里我们没有选择流行的,更容易入门的 Python 呢?这是因为在实际的开发中,C 家族语言,包括 C、C++、JAVA 和 C#,几乎占据了编程语言的半壁江山——并且,这几种语言,在语法上一脉相传,你学会了其中一个,就自动学会了另外几个的大部分内容。相比之下,Python 作为入门的第一种语言,在学习的性价比方面无疑是有劣势的——相反,当你通过 C 家族语言建立了足够强的编程基础的时候,回过头来再去熟悉 Python 就容易多了。&/p&&p&而另一方面,如果你没有应试的需求的话,那就不要先学 C 语言——因为纯粹的 C 语言太过于古老简陋,不够现代化,会给初学者带来太多不必要的麻烦和困扰,并且应用范围极其狭窄。根据信心保护和高性价比学习这两条原则,如果没有应试的需求的话,实在没有必要在初学阶段接触纯粹的 C 语言。相比之下,JAVA 明显要现代化和友好得多——而 C++ 借助一系列标准库,在现代化程度上相比纯粹的 C 语言也有着巨大的优势,至于它的语法复杂的问题,初学阶段也可以通过只接触 C++ 的一个常用的子集来规避。必须明确一点——C++ 并不难学,因为复杂的语法是为了简单地解决复杂的问题,而不是正相反,把简单问题故弄玄虚地复杂化。&/p&&p&以下将会以 C++ 为例,提供一个可以参考的路线(JAVA 的路线与之类似):&/p&&blockquote&&p&0、
不要看《C++ Primer》作为入门书——它的定位是“程序员的第一本 C++ 教材”,而不是“初学者的编程入门书”,用《C++ Primer》作为入门书,违反了信心保护原则——你可以等到具有一定的编程能力之后再回过头来看它。&/p&&p&1、
完成&a href=&https://link.zhihu.com/?target=http%3A//www.xuetangx.com/courses/course-v1%3ATsinghuaX%2B15_T2%2Bsp/about& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《C++ 语言程序设计基础》&/a&&/p&&p&这门课程没有前置知识需求,较为详细地讲解了 C++ 的基本语法、流程控制、包括面向对象在内的一系列编程思想等内容——课程难度适中,对初学者非常友好。从头学完一遍,把所有的作业题都做过一轮,这个时候你就有了最基本的编程能力——如果你连课程中的实验课内容也看过一遍并动手做过一遍,那么你同样也就有了基本的、对程序进行调试的思想和能力。&/p&&p&2、
完成&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/BUPT-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《C++ 程序设计入门》&/a&(上/下)&/p&&p&凭心而论,我个人认为这门课程的质量要比 1 中提到的要好——但是这门课程有一个严重的缺点:它要求学生已经学过 C 语言,并不适合作为第一个入门的课程。在已经完成《C++ 语言程序设计基础》的前提下,通过这门课程,你可以更多地学习到面向对象编程思想与方法,C++ 的内存模型,以及异常处理等 C++ 特有的内容。到这一步,语言的学习部分已经几乎完成了——如果有兴趣的话,你可以自己去搜索一下,关于 C 语言的一些函数(例如scanf的用法)——现在你已经可以理解它的相关内容(比如为什么scanf括号后面的变量名要加 & 符号)了。&/p&&p&3、
在做本地练习的时候,如果读者已经有自己喜欢的编辑器 / IDE 的话,那按照自己喜欢的去配置环境就行。如果读者对此没什么概念,那么 Windows 用户请直接根据这个答案,&a href=&https://www.zhihu.com/question//answer/& class=&internal&&配置使用 Visual Studio 作为开发环境&/a&, 或者使用《C++ 程序设计入门》中介绍的 Dev-Cpp 作为开发环境,macOS 用户请直接去应用商店下载 Xcode,配置方法可以参照 Visual Studio。&strong&本文不讨论任何关于编辑器 / IDE 圣战的相关内容&/strong&。&/p&&p&4、
刷题&br&到这一步,你已经具备了最为基本的编程能力——但是这能力还很脆弱,需要进一步地巩固。一定要意识到,计算机科学的专业内容是知识,而编程本身则是一种技能,或者说一门手艺——它必须要通过大量的,反复的练习来提高。而最好的练习方式,就是刷题。&/p&&p&这里要推荐&a href=&https://www.zhihu.com/people/26ad33fc8a2501ddb13ce7e1517dfdd6& data-hash=&26ad33fc8a2501ddb13ce7e1517dfdd6& class=&member_mention& data-hovercard=&p$b$26ad33fc8a2501ddb13ce7e1517dfdd6&&@陈越姥姥&/a& 的 PAT &a href=&https://link.zhihu.com/?target=https%3A//www.patest.cn/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&patest.cn/&/span&&span class=&invisible&&&/span&&/a&——直接去 &a href=&https://link.zhihu.com/?target=https%3A//www.patest.cn/contests/pat-b-practise& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PAT 乙级的题库&/a&。&/p&&p&乙级的大部分题,都适合刚刚学会编程的读者们来做——完成这些“水题”可以有效增强自信,并实际地快速提高你的代码量,进而提高编程技能。需要注意的是,PAT 乙级的一部分题需要基本的数据结构和算法知识,现在你可以先不做——进入题库之后可以选择按通过率排序来依次完成。如果你遇到了困难,可以直接通过搜索引擎搜索 PAT + 题号,通常都能找到解法——你可以先看一遍解法,理解其思想,然后自己亲手写一遍。这里你会发现,虽然 PAT 支持 Python,但是几乎所有能找到的解题代码都是由 C/C++ 写成的——这也是我们推荐你通过 C 家族语言入门的原因。&/p&&p&5、
可选:&a href=&https://link.zhihu.com/?target=http%3A//www.xuetangx.com/courses/course-v1%3ATsinghuaX%2BBsp/about& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&面向对象程序设计(C++)&/a&&/p&&p&这门课程不用上完,只要看第一章就可以了——关键是理解编译和连接的过程,如何在命令行下编译,以及如何写 makefile ——这也是很多前辈推荐初学者从 Linux 入门的原因。然而事实上,根据最低耦合原则,这些内容本身并不是学习编程所必须了解的内容,而这些内容的学习本身也并不需要把时间浪费在学习 Linux 相关知识上——对于缺乏助教支持的读者来说,&strong&你完全可以等学会编程之后再去学习怎么使用 Linux&/strong&。&/p&&p&Windows 用户可以直接使用 MinGW、Cygwin 或者 Windows 10 提供的 Linux Subsystem,macOS 用户可以直接使用自带的终端——实际动手做一遍,用 cpp 文件编译一个可执行文件出来,建立这样一个最初的印象就可以了——接下来的学习可以仍然围绕着你原来使用的开发环境来展开。&/p&&/blockquote&&p&&b&# 更上一层楼:数据结构与算法的学习&/b&&/p&&p&语言关解决了,最基本的编程能力建好了,接下来你就可以进行数据结构与算法课程的学习了——正如我们前文所说的那样,这部分知识的性价比极高,在这一部分进行扎实地学习和充分的练习,可以让自己的编程能力拥有一个质的飞跃——可以说,对于真正想要从事开发工作的读者来说,这一步是绝对必不可少的。&/p&&p&需要特别注意的是,《数据结构》跟《算法设计与分析》本质上是两门不同的课程——其层次不同,侧重点也不同。所以入门的时候最好不要选择名字里把“算法”两个字放在前面的课程——例如 MIT《算法导论》公开课。相信我,如果你用它入门的话,那你一定会学得一头雾水的……&/p&&p&&b&1、完成&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/ZJU-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《数据结构》&/a&&/b&&/p&&p&继续给陈越姥姥打广告……这门课程每半年开一次,分别在网易云课堂和中国大学 MOOC 上——作为入门课来说,这门课程是非常出色的,当你完成第一阶段的学习之后,你已经有了完成这门课程的能力。一边学习,一边练习——这门课程本身提供了一个单独的训练平台,里面的题最好全都做完——如果没时间的话,那就至少把课程中强调“一定要做”的题做完。&/p&&p&&b&2、继续刷题&/b&&/p&&p&我们还是以 PAT 为主——因为其他 OJ 平台通常都是面向 ACM 的,作为初学者来说接触它们仍然为时尚早。在学完栈和队列等线性数据结构之后,乙级剩下的题也都可以做了——乙级完成之后,可以直接开始进入甲级。等你把 PAT 刷完,你可以试试挑战别的 OJ 了——比如著名的 &a href=&https://link.zhihu.com/?target=http%3A//poj.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&POJ &/a&&/p&&p&&b&3、完成&a href=&https://link.zhihu.com/?target=http%3A//www.xuetangx.com/courses/course-v1%3ATsinghuaX%2BBsp/about& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《数据结构(C++)》&/a&&/b&&/p&&p&清华邓俊辉老师的数据结构,有兴趣的可以学一遍——和前面那门课程相比,这门课程难度更大,含金量也更高,但是入门门槛显然也更高,并且线上版课程砍掉了一部分关于图论的内容,这一点需要注意。这门课程一共有 4 组共 12 道编程题,普遍有着巨大的难度(相对于之前做过的题),请大家量力而行。&/p&&p&&b&# 可选:学习C#和WinForm开发&/b&&/p&&p&C# 作为 JAVA 和 C++ 的发展,是一种现代、先进而优雅的编程语言——现在你已经学习了 C++ 和/或 JAVA,如果你有 Windows 环境的话,那你可以试着学习一下 C# 和 WinForm 开发。C# 也是 C 家族语言的典型成员,通过学习 C#,你可以 &strong&实际地演练一下如何进行知识迁移,真切地感受目前自己已经拥有的能力&/strong&——这个步骤,可以极大地增强你的经验和信心。&/p&&blockquote&&p&1、完成&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/PKU-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《C# 程序设计》&/a&&br&&/p&&p&这门课程介绍了 C# 的基本语法、WinForm 基本入门、委托(Delegate)和事件(Event)等一系列 C# 特有的特性——作为入门课程来说是合格的。&/p&&p&这里需要给大家介绍一个小技巧——对于网易云课堂的课程,建议大家在电脑上安装一个安卓模拟器,然后使用客户端来观看课程视频——包括这门课程在内的很多老师的语速似乎都很慢,而云课堂网页版的播放器并不支持变速播放……&/p&&p&2、学习&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/BIT-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《面向对象软件开发实践之基本技能训练》&/a&第一第二章&/p&&p&@金旭亮 老师出品的课程,非常出色——把所有课程视频看完,照着写一遍所有示例,现在你已经可以写出小的桌面程序了。&/p&&p&这个阶段看起来并不是必要的——但是这个阶段的学习,有以下三个方面的重要作用:&/p&&ul&&li&&p&&b&实际体会一下如何进行知识迁移&/b&——这个时候你会发现,你虽然是第一次接触 C#,但是写起代码来却一气呵成,全然没有你想象得那么困难。如果你以后打算从事 Android 开发相关工作的话,那么你就会发现,你在这个阶段学习的很多内容都可以几乎无缝地迁移到 Android 领域。&/p&&/li&&li&&p&&b&增强自己的信心&/b&——之前你的所有编程练习都是在黑乎乎的命令行下完成的,现在你终于可以开发桌面 GUI 程序了!这一步可以提供巨大的正向反馈,极大地增强你的信心。而 WinForm 虽然已经落后,但是在初学阶段这反而是它的优势——你只要学会最基本的 C# 语法、面向对象编程思想,并理解事件驱动机制就可以进行开发了,几乎不需要学习任何“没有用”的,无法迁移的知识。&/p&&/li&&li&&p&&b&可以以很低的代价,快速开发出较为庞大复杂的程序&/b&——这个时候,你就会发现你最初写的代码已经很难维护了。这可以让你切身了解到软件工程、设计模式等等的重要性——并且以低廉的成本,给你一个可以演练它们的舞台。&/p&&/li&&/ul&&/blockquote&&p&&b&# 学习一种脚本语言&/b&&/p&&p&当你已经学会了至少一种 C 家族语言时,你的核心编程能力已经初步构建完成——为了你的全面发展,有条件的话推荐你掌握至少一种脚本语言。&b&我们建议选择 Python&/b&,当然你也可以选择 JavaScript 或者其他任何一种你喜欢的脚本语言。&/p&&p&这里以 Python 为例进行说明:&/p&&blockquote&&p&1、完成 &a href=&https://link.zhihu.com/?target=http%3A//www.xuetangx.com/courses/course-v1%3AMITx%2B6_00_1x%2Bsp/about& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MIT 6.00.1x(麻省理工:计算机科学和 Python 编程导论)&/a&。&/p&&p&这门课程已经被很多人安利过了——现在你已经不是一个纯粹的菜鸟了,所以有些编程思想相关的内容可以跳过(但如果你对这些内容掌握不扎实的话可以复习一下)。重点应该放在以下内容上:&/p&&ul&&li&Python 的基础语法&/li&&li&Python 内置数据结构的使用方式&/li&&li&Python 中的函数定义,如何使用Python进行面向对象编程&/li&&/ul&&/blockquote&&p&如果你的 JAVA 或者 C++ 基础在之前的步骤中打得足够扎实的话,那么不管是 Python 还是 C#,你都可以做到只用几天甚至几小时的时间,就完成语言部分主要内容的学习——这对于初学者来说是完全不可想象的。知识迁移的威力,由此可见一斑。&/p&&p&&b&# 思想和方法:软件工程,设计模式和进一步的专业知识&/b&&/p&&p&如果你之前用 C# 写过足够大的 WinForm 程序的话,那现在你手头多半已经有一个你亲手创造的烂摊子了——虽然它可以完成你想让它完成的工作,但每次给它添加什么新的功能,通常都要重写很多代码,而且很容易出 bug。这个时候,不用我说你也知道为什么需要学习软件工程和设计模式了。与此同时,如果你的编程能力只局限于 Windows 桌面本地单线程的程序,那显然也是不够的——你需要学习操作系统、数据库和计算机网络等相关知识。&/p&&p&遗憾的是,网络上能找到的很多软件工程的 MOOC 都有种“文科化”的问题,缺乏与实际相结合的内容——所以我们不要直接去学习挂着“操作系统”和“计算机网络”之类的课程。记住,我们学习的目的是提高编程能力,而不是准备考试。&/p&&p&以下是按照由易到难的顺序排列的一条专业知识学习路线:&/p&&p&1、完成&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/USTC-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《软件工程:C 编码实践篇》&/a&&/p&&p&这门课程讲了版本管理、代码风格、模块化设计等一系列知识,每周都有一些编程作业——整体来讲,这门课程唯一的缺点就是只在每年九月份免费开课一次,其他时间想上课(哪怕旁听)都要收费……而只看内容本身(先不考虑可能有的助教等资源,因为我没上过这课的收费版……),坦白地说课程收费还是贵了点……&/p&&p&另外,这门课使用 Linux 平台,讲了基本的 bash 操作和 VIM 的使用方法——刚入门的时候你在技术上的原始积累还很不足,但 &strong&现在你已经成长到足够强大,可以开始学习Linux的相关知识了&/strong&。&/p&&p&如果没有机会上这门课,你可以直接阅读邹欣老师的《构建之法》,Linux 相关的内容可以在下面学习。&/p&&p&2、学习&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/BIT-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《面向对象软件开发实践之基本技能训练》&/a&第三到第五章,以及&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/BIT-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《面向对象软件开发实践之实战技能训练》&/a&第一章&/p&&p&这部分主要讲了代码重构、测试驱动开发(TDD)和设计模式,跟《软件工程》课程有一点重合,但是更多的内容还是不太一样的。此外,这部分课程还讲了大量关于线程和计算机网络的相关知识。特别需要说明的是,这部分内容与 WinForm 的关联并不大——所以 Mac 用户可以直接安装.Net Core 和最近刚刚发布的Visual Studio for Mac(或者已经发布快两年的 VSCode)来练习编写课程中给出的例程。当然你也可以自己寻找 JAVA 中类似的内容。&/p&&p&3、学习&a href=&https://link.zhihu.com/?target=http%3A//www.xuetangx.com/courses/course-v1%3ATsinghuaX%2BBsp/about& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《基于 Linux 的 C++》&/a&&/p&&p&如果你已经学习了 C++ 的话,可以直接从第十二章开始,这门课程讲解了很多 Linux 的相关知识,以及操作系统和计算机网络的重要概念(进程、线程、Socket 等)——不过直接看的话可能会遇到一点障碍,因此你可以参照一些概念性很强的操作系统/计算机网络课程来学习。注意,不要学习学堂在线上的《操作系统》课程——它的难度系数过大,已经完全超过了 MOOC 课程体系能容纳的极限。事实上,在没有足够的助教资源支撑的情况下,想完成这门课程对于大多数人来说几乎是不可能的——哪怕按需选择章节都是浪费时间。&/p&&p&在这里,你将再一次体会知识迁移的高效性——Linux 提供的 POSIX C 语言线程函数,C++11 提供的 thread 类和 .Net 提供的 Threading 系列方法,虽然它们各自诞生的年代和所属的平台都有巨大差别,但是使用方法上却存在着惊人的相似性。如果你使用 JAVA 的话,你也可以自己寻找关于 JAVA 多线程控制的内容——然后你会发现什么叫做“万变不离其宗”,并且能够意识到“程序员吃青春饭,技术岗位干不久”这样的说法为什么是错的……&/p&&p&操作系统和计算机网络部分补充阅读:&br&&a href=&https://link.zhihu.com/?target=http%3A//docs.linuxtone.org/ebooks/C%26CPP/c/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Linux C 一站式编程》&/a&&br&&br&根据自己的需要,按需学习。这部分特别介绍了 gdb 的使用方法。之前借助 Visual Studio,你应该已经学会了如何对一个程序进行调试——所以这里你可以非常容易地掌握 gdb 的用法。&br&&a href=&https://link.zhihu.com/?target=https%3A//github.com/angrave/SystemProgramming/wiki& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《CS241 System Programming》&/a&&br&&br&这个是美国伊利诺伊大学香槟分校(UIUC)的操作系统课程使用的教材——如果你英语水平不太差,并且对一些基本的概念(比如进程,线程)已经有了了解的话,那么它会比国内的教材更易懂。&/p&&p&其他:完成&a href=&https://link.zhihu.com/?target=http%3A//mooc.study.163.com/course/ZJU-%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《数据库系统原理》&/a&或者&a href=&https://link.zhihu.com/?target=http%3A//www.icourse163.org/course/RUC-/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《数据库系统概论》&/a&&/p&&p&对于数据库,你需要了解数据库的基本概念和原理,并且要掌握 SQL 语言的使用方法——这两门课程的内容目前看来都是可以满足要求的。这门课程并不依赖于以上专业课,你可以在任何时候开始学习。&/p&&br&&h3&&b&后记&/b&&/h3&&p&到了这里,我们有一个好消息和一个坏消息:&/p&&p&坏消息是,系统性的计算机专业课资源已经很难找到了——你的学习即将进入困难的深水区。&/p&&p&好消息是,目前你已经拥有了最为核心的计算机科学知识和软件开发技能体系——接下来你已经可以直接选一个你有兴趣,并且就业前景比较好的应用方向来开始你的学习了。&/p&&p&走到这一步,你虽然离大神仍然有很远的距离,但至少,你已经具备了在软件开发行业立足的绝大多数核心技能——借助这些核心技能,当你进一步接触具体的应用方向的时候,你的起点和未来能够达到的高度,都将会有质的提高——这,也正是正向路线的优点所在。&/p&&p&当然,这一路线本身并不是绝对不变的——你可以根据实际情况,适当进行调整。而在后续的文章中,我们还将对“反向”路线,即首先从前端等具体方向开始学习的方法进行介绍。&/p&&br&更多内容,敬请关注专栏 &a href=&https://zhuanlan.zhihu.com/jisuanke& class=&internal&&代码视界&/a&
本文作者为教学研究团队成员。这是计蒜客《咸鱼翻身——编程自学指南》的第一篇。《咸鱼翻身——编程自学指南》是一个旨在帮助有志于提高编程水平和从事开发工作,但是缺乏学习资源和指导的学习者。更多内容,敬请关注专栏 以下是正文你是否…
&b&首先做个说明,不是图片没修好,也不是图片没选好。主要是原图我找不见了,我只好从我的公众号上搬图片下来了,所以大家看到就成这样了。想看高清原图的请到公众号上,不过这些都不重要啦,重要的是方法啦。还有看完一定要练习!!&/b&&br&&br&&p&——————————————————以下正文—————————————————————&/p&&br&&p&&b&最新一起的关于照片后期处理的回答,欢迎大家去看看&/b&&/p&&p&&b&&a href=&https://www.zhihu.com/question//answer/?from=profile_answer_card& class=&internal&&iPhone 拍照有哪些技巧? - 小野jesse 的回答&/a&&/b&&/p&&b&&br&如果你真的喜欢摄影,请一定认真看完。&/b&&br&&b&如果你真的喜欢摄影,请一定认真看完。&/b&&br&&b&如果你真的喜欢摄影,请一定认真看完。&/b&&br&一张照片看起来要很屌,后期处理确实非常重要。拿我最近用手机拍摄和手机后期修过的几组照片对比先看下。&br&&figure&&img src=&https://pic4.zhimg.com/50/8fedbad745cbe26b733966c_b.jpg& data-rawwidth=&777& data-rawheight=&505& class=&origin_image zh-lightbox-thumb& width=&777& data-original=&https://pic4.zhimg.com/50/8fedbad745cbe26b733966c_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/50/ec28ac133f_b.jpg& data-rawwidth=&555& data-rawheight=&839& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic4.zhimg.com/50/ec28ac133f_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/8d051ecf0e2f_b.jpg& data-rawwidth=&777& data-rawheight=&517& class=&origin_image zh-lightbox-thumb& width=&777& data-original=&https://pic3.zhimg.com/50/8d051ecf0e2f_r.jpg&&&/figure&&b&前面分享的照片都是iPhone6 拍摄的,现在手机拍摄的图片质量都挺好,再加上好的后期处理,照片就会更出彩! 接下来我就着重分享一款我经常使用的一款手机软件“snapseed”.&/b&&br&&figure&&img src=&https://pic1.zhimg.com/50/d5a28ef8fade3e3e3ddd8_b.jpg& data-rawwidth=&566& data-rawheight=&498& class=&origin_image zh-lightbox-thumb& width=&566& data-original=&https://pic1.zhimg.com/50/d5a28ef8fade3e3e3ddd8_r.jpg&&&/figure&&b&手机修图软件有很多,很多。那么我今天为什么要和大家分享snapseed这款软件呢?只因它真是太牛x 了,可以这样说:每年“iPhone摄影大赛”的优胜得主,几乎都是使用它来修片。所以想学好也是要花点心思。&/b&&br&&figure&&img src=&https://pic4.zhimg.com/50/bb8d7d47f_b.jpg& data-rawwidth=&555& data-rawheight=&872& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic4.zhimg.com/50/bb8d7d47f_r.jpg&&&/figure&&b&我用两张图片来为例来为大家详细讲解,图片有点多,耐心看完你就能学会了!大家看完可以用我的原图一起练习下。&/b&&br&&figure&&img src=&https://pic3.zhimg.com/50/0be5ccf28_b.jpg& data-rawwidth=&822& data-rawheight=&617& class=&origin_image zh-lightbox-thumb& width=&822& data-original=&https://pic3.zhimg.com/50/0be5ccf28_r.jpg&&&/figure&&b&好了,让我们开始学习吧!首先,打开软件,打开原图片。&/b&&br&&br&&figure&&img src=&https://pic2.zhimg.com/50/e56a5ded7ac0b14feab6298_b.jpg& data-rawwidth=&800& data-rawheight=&711& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic2.zhimg.com/50/e56a5ded7ac0b14feab6298_r.jpg&&&/figure&&b&第一步,选择工具,工具中有9大项,我主要说说我比较常用的几个,第一项,“调整图片”,这个是最重要的工具,点击进入又有七大指令可以选择调试!非常好用,每张图片都用的到!大家一定要多尝试去调下!【PS:大家如果看不清楚图片上的标注,可以点击图片,放大看哦】&/b&&br&&br&&figure&&img src=&https://pic3.zhimg.com/50/f677c2f39eb909ab2f5698_b.jpg& data-rawwidth=&888& data-rawheight=&785& class=&origin_image zh-lightbox-thumb& width=&888& data-original=&https://pic3.zhimg.com/50/f677c2f39eb909ab2f5698_r.jpg&&&/figure&&p&&b&运用好此项工具就基本的掌握了此软件,所以这才是重头戏。&/b&&/p&&p&&b&a.亮度——根据你所拍摄照片的情况,调整照片的明暗亮度。&/b&&/p&&p&&b&b.氛围——可获得更多的亮部和暗部的细节。&/b&&/p&&p&&b&c.对比度——可以让明暗的对比更强烈让图片更通透。&/b&&/p&&p&&b&d.饱和度——可以让照片的颜色,色彩更鲜艳,也可以让颜色变淡,或变成黑白。&/b&&/p&&p&&b&e.阴影——可获得更多的暗部细节。&/b&&/p&&p&&b&f.高光——可获得更多的亮部细节。&/b&&/p&&p&&b&h.暖色调——可调整让照片更暖(照片变黄)或更冷(照片变蓝)&/b&&/p&&p&&b&*注:所有调整参数都应掌握一个度,并不是越高越好,可根据自己的“口味”调整。&/b&&/p&&br&&figure&&img src=&https://pic3.zhimg.com/50/23eb30c7e6fb6f6fe02afade_b.jpg& data-rawwidth=&800& data-rawheight=&707& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/50/23eb30c7e6fb6f6fe02afade_r.jpg&&&/figure&&b&第二步,选择“突出细节” 该项主要是让照片细节更细腻,画面更清晰,提高照片质量!&/b&&br&&br&&figure&&img src=&https://pic4.zhimg.com/50/fad20b40cb8ace223c6fe9c_b.jpg& data-rawwidth=&800& data-rawheight=&709& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/50/fad20b40cb8ace223c6fe9c_r.jpg&&&/figure&第三步,我先选择了 “变形”,变形中有三个指令,可以根据不同的需要尝试使用,我们今天用到垂直角度,主要用在建筑比较多,我这边主要想让画面中的建筑和地面尽量保持直立!&br&&br&&figure&&img src=&https://pic3.zhimg.com/50/bd0b9d1bcbb8_b.jpg& data-rawwidth=&888& data-rawheight=&787& class=&origin_image zh-lightbox-thumb& width=&888& data-original=&https://pic3.zhimg.com/50/bd0b9d1bcbb8_r.jpg&&&/figure&&b&第四步,“剪裁”,剪裁经常用来再次构图,上个“变形”步骤,让画面边缘过渡不是很好,我们给它剪裁掉!让画面更加干净,&br&&/b&&br&&figure&&img src=&https://pic4.zhimg.com/50/4f5d7d0c33da1f11812eae_b.jpg& data-rawwidth=&800& data-rawheight=&709& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/50/4f5d7d0c33da1f11812eae_r.jpg&&&/figure&第五部,“画笔”,画笔是我比较喜欢用的一项,可以加深,减淡,添加色彩饱和,减低色彩饱和等等,大家多试试。&br&&br&&figure&&img src=&https://pic3.zhimg.com/50/ea547efb88a_b.jpg& data-rawwidth=&800& data-rawheight=&710& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/50/ea547efb88a_r.jpg&&&/figure&图片上都配有文字,希望能大家能看的清楚!&br&&figure&&img src=&https://pic4.zhimg.com/50/06f64c9b5e23cee_b.jpg& data-rawwidth=&800& data-rawheight=&709& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/50/06f64c9b5e23cee_r.jpg&&&/figure&&b&最后一步,“晕影”,晕影就是让选中的区域四周或中心,加亮或者变暗!&/b&&br&&figure&&img src=&https://pic3.zhimg.com/50/98cc5880267dca1e279baa885b5d4719_b.jpg& data-rawwidth=&555& data-rawheight=&454& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic3.zhimg.com/50/98cc5880267dca1e279baa885b5d4719_r.jpg&&&/figure&这样我们这张图片就差不多完成了。&br&&br&—————————————————————————————————————&br&接下来我们来看看第二张图片,这边我文字就不打那么多了,图片上都配有说明!【PS:大家如果看不清楚图片上的标注,可以点击图片,放大看哦】&br&&figure&&img src=&https://pic3.zhimg.com/50/ebda0ba75da7b4_b.jpg& data-rawwidth=&1024& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&https://pic3.zhimg.com/50/ebda0ba75da7b4_r.jpg&&&/figure&&b&打开原图, &/b&&br&&figure&&img src=&https://pic1.zhimg.com/50/eb856b461c828092fbad33_b.jpg& data-rawwidth=&800& data-rawheight=&709& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/50/eb856b461c828092fbad33_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/097415eca52f981d6c98f6_b.jpg& data-rawwidth=&466& data-rawheight=&587& class=&origin_image zh-lightbox-thumb& width=&466& data-original=&https://pic3.zhimg.com/50/097415eca52f981d6c98f6_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/50/043f9b23f783c0c22d4452351fde6701_b.jpg& data-rawwidth=&800& data-rawheight=&700& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/50/043f9b23f783c0c22d4452351fde6701_r.jpg&&&/figure&&b&两次“变形”&/b&&br&&br&&figure&&img src=&https://pic1.zhimg.com/50/dbe03e2d1c5e5e046ceebe_b.jpg& data-rawwidth=&800& data-rawheight=&702& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/50/dbe03e2d1c5e5e046ceebe_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/f845a12549bab7bed9ba35_b.jpg& data-rawwidth=&724& data-rawheight=&655& class=&origin_image zh-lightbox-thumb& width=&724& data-original=&https://pic3.zhimg.com/50/f845a12549bab7bed9ba35_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/dc0de586e15d9f7eb6df1f_b.jpg& data-rawwidth=&800& data-rawheight=&709& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/50/dc0de586e15d9f7eb6df1f_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/50/406d4091fdb803efbc6725_b.jpg& data-rawwidth=&800& data-rawheight=&655& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic2.zhimg.com/50/406d4091fdb803efbc6725_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/83af87fe2ac_b.jpg& data-rawwidth=&800& data-rawheight=&711& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/50/83af87fe2ac_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/ad1edc208f6b62dadc2a_b.jpg& data-rawwidth=&750& data-rawheight=&986& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic3.zhimg.com/50/ad1edc208f6b62dadc2a_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/50/2ac5fedf0bf8a7b1e1c060_b.jpg& data-rawwidth=&800& data-rawheight=&725& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/50/2ac5fedf0bf8a7b1e1c060_r.jpg&&&/figure&&b&到这边我们就已经处理好了,这期我们就不多介绍软件中的滤镜了,滤镜大家今天多尝试下,每个滤镜都有不一样的效果。这期着重介绍下滤镜中的“镜头模糊”,顾名思义,就是处理成像镜头拍出的模糊效果,虚化背景突出主体!里面有三个指令可以调试,模糊强度,过渡和晕影!大家可以尝试下应该很容易上手,我这边就不讲了。&/b&&br&&br&&b&&figure&&img src=&https://pic1.zhimg.com/50/d0a65e21cf3e59fcca4d93a4a5878c64_b.jpg& data-rawwidth=&800& data-rawheight=&709& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/50/d0a65e21cf3e59fcca4d93a4a5878c64_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/50/6cbbc328de3ac68e266c28a_b.jpg& data-rawwidth=&750& data-rawheight=&522& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic1.zhimg.com/50/6cbbc328de3ac68e266c28a_r.jpg&&&/figure&怎么样,大家明白了吗?&/b&&br&&p&&b&那就赶紧拿出你手机里的照片去尝试。别偷懒!&/b&&/p&&p&&b&那就赶紧拿出你手机里的照片去尝试。别偷懒!&/b&&br&&/p&&p&&b&那就赶紧拿出你手机里的照片去尝试。别偷懒!&/b&&br&&/p&&p&最后祝大家手机拍摄愉快,多拍出点好的作品,丰富你的生活,丰富你的朋友圈!&br&接下来我们会有专门详细讲解 美食,风景,自拍,后期等教程,敬请关注!谢谢大家的支持!&br&&/p&&p&&b&小野Jesse老师摄影讲武堂第二期结束。&/b&&/p&&p&&b&小野Jesse老师摄影讲武堂第一期链接:&/b&&br&&/p&&p&&b&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&提高手机摄影水平,有什么心得? - 小野jesse 的回答&/a&&br&&/b&&/p&&br&&p&&strong&特别提醒:以上所有教程作品均来源于小野杰西老师私人手机拍摄作品,&/strong&&b&转载使用请注明出处,通过本人微信联系后方可转载,谢谢。侵权必究!&/b&&/p&&p&&b&—————————————————重要分割线————————————————————&/b&&br&&/p&&br&&p&&b&小野有个想法想先咨询下大家的意见,也想得到大家更好的建议,下面是链接:&/b&&/p&&p&&b&&a href=&https://www.zhihu.com/question/& class=&internal&&知乎 - 与世界分享你的知识、经验和见解&/a&&/b&&/p&&br&———————————————————分割线—————————————————&p&还有什么问题或者想了解更多摄影技巧,摄影知识,服装搭配,可以关注我的公众号!不强求哦!&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//weixin.qq.com/r/aTlJUejE6bWWrawy92x7& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&weixin.qq.com/r/aTlJUej&/span&&span class=&invisible&&E6bWWrawy92x7&/span&&span class=&ellipsis&&&/span&&/a& (二维码自动识别)&/p&
首先做个说明,不是图片没修好,也不是图片没选好。主要是原图我找不见了,我只好从我的公众号上搬图片下来了,所以大家看到就成这样了。想看高清原图的请到公众号上,不过这些都不重要啦,重要的是方法啦。还有看完一定要练习!! ———————————…
回答有些长,为节约大家的时间,我选取了一个经典案例,辅以详细的说明(中文版Excel2013)放在开头,若没有时间看全部回答,可以详细看一下这个案例。&br&&br&这个案例充分体现了“&b&将Excel的元素融入图表&/b&”的技巧。以下商业杂志图表均利用了这一技巧。&br&&br&&figure&&img src=&https://pic2.zhimg.com/50/e9bb0c48cf59e5dd0d5178_b.jpg& data-rawwidth=&701& data-rawheight=&202& class=&origin_image zh-lightbox-thumb& width=&701& data-original=&https://pic2.zhimg.com/50/e9bb0c48cf59e5dd0d5178_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/50/e879dedfce9c_b.jpg& data-rawwidth=&806& data-rawheight=&287& class=&origin_image zh-lightbox-thumb& width=&806& data-original=&https://pic2.zhimg.com/50/e879dedfce9c_r.jpg&&&/figure&&br&下图是我参照上图制作的图表。&br&&figure&&img src=&https://pic4.zhimg.com/50/6e0f9abb8dfcd_b.jpg& data-rawwidth=&599& data-rawheight=&379& class=&origin_image zh-lightbox-thumb& width=&599& data-original=&https://pic4.zhimg.com/50/6e0f9abb8dfcd_r.jpg&&&/figure&首先选中源数据,A到F列&br&&figure&&img src=&https://pic3.zhimg.com/50/61faac1b237f_b.jpg& data-rawwidth=&315& data-rawheight=&422& class=&content_image& width=&315&&&/figure&绘制散点图,得到经典的Excel风格图表&br&&figure&&img src=&https://pic3.zhimg.com/50/d1fdcccd655e_b.jpg& data-rawwidth=&373& data-rawheight=&229& class=&content_image& width=&373&&&/figure&&p&将利润率设为次坐标:选中橙色那根线,右键-设置数据系列格式-次坐标轴&/p&&figure&&img src=&https://pic4.zhimg.com/50/18e7bd29fc_b.jpg& data-rawwidth=&378& data-rawheight=&228& class=&content_image& width=&378&&&/figure&&p&删去图表标题、图例,调节横坐标、两个纵坐标的上下限,删去纵网格线,删去两个纵坐标的轴线,得到这样一张图&/p&&br&&figure&&img src=&https://pic4.zhimg.com/50/7c27bfbc86_b.jpg& data-rawwidth=&479& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&479& data-original=&https://pic4.zhimg.com/50/7c27bfbc86_r.jpg&&&/figure&&p&下一步称为“&b&锚定&/b&”,鼠标光标移动到下图所示的图表左上角的顶点处,按住Alt,随后按住鼠标进行拖动,发现这样调节图表的尺寸,限定于Excel的网格点。&/p&&br&&figure&&img src=&https://pic2.zhimg.com/50/6a9be351f0cdc9ec60ca2ee2ea9f2c3f_b.jpg& data-rawwidth=&158& data-rawheight=&96& class=&content_image& width=&158&&&/figure&&br&&br&&p&四个角都这样进行调节,分别“锚定”于N7, V7, N15, V15&/p&&figure&&img src=&https://pic4.zhimg.com/50/4baf102ffe91a8b2998116a_b.jpg& data-rawwidth=&554& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic4.zhimg.com/50/4baf102ffe91a8b2998116a_r.jpg&&&/figure&&br&&p&选中图表区域,右键-设置图表区域格式,在属性中选择“大小固定,位置随单元格而变”,这样,在调整Excel行距和列宽时,图表就不会随之而动。&/p&&figure&&img src=&https://pic4.zhimg.com/50/5d1dbfe7f_b.jpg& data-rawwidth=&235& data-rawheight=&99& class=&content_image& width=&235&&&/figure&&br&&p&在第4~6行输入内容,设置填充色&/p&&figure&&img src=&https://pic2.zhimg.com/50/23b031f67804cafbefd7bdfc9cbe742b_b.jpg& data-rawwidth=&554& data-rawheight=&345& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic2.zhimg.com/50/23b031f67804cafbefd7bdfc9cbe742b_r.jpg&&&/figure&&br&&p&&b&调节7~15行行距,使得Excel网格线与我们做的图表的横向网格线一一重叠;&/b&&/p&&br&&p&&b&调节O列和U列列宽&/b&,使得&b&O列左侧网格线&/b&恰好经过&b&图表横网格线的起点&/b&,&b&U列右侧网格线&/b&也是一样的道理,如下图所示。&/p&&figure&&img src=&https://pic3.zhimg.com/50/842ea4b5bab2d607f0b9917_b.jpg& data-rawwidth=&554& data-rawheight=&348& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/50/842ea4b5bab2d607f0b9917_r.jpg&&&/figure&&br&&p&选中图表区,填充色改为无色,外轮廓也删去,这样图表就变成“透明”的了&/p&&figure&&img src=&https://pic4.zhimg.com/50/4d86ffc83fbe9b_b.jpg& data-rawwidth=&554& data-rawheight=&380& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic4.zhimg.com/50/4d86ffc83fbe9b_r.jpg&&&/figure&&br&&p&随后对N7:V15这个区域的单元格进行填充色。&/p&&p&(选中这些单元格的方法:&/p&&p&先选中图表区域外的一个单元格,如M7,按键盘的→键,移动到N7,然后按住Shift,再按→键或↓键调节即可,选中后进行单元格填充。)&/p&&figure&&img src=&https://pic3.zhimg.com/50/701e75eb66b31ca0032fc_b.jpg& data-rawwidth=&554& data-rawheight=&392& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/50/701e75eb66b31ca0032fc_r.jpg&&&/figure&&br&&p&在Excel“视图”中取消勾选网格线&/p&&figure&&img src=&https://pic2.zhimg.com/50/5cc291504ebbfefe409f9e_b.jpg& data-rawwidth=&262& data-rawheight=&101& class=&content_image& width=&262&&&/figure&&br&&p&最后添加一些图例即可&/p&&figure&&img src=&https://pic4.zhimg.com/50/b7223dbfc833cca2b70beb_b.jpg& data-rawwidth=&554& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic4.zhimg.com/50/b7223dbfc833cca2b70beb_r.jpg&&&/figure&&br&&br&相信你已体会到了如何将Excel的元素融入图表设计中。&br&&br&&br&&br&======================原回答=========================&br&&br&&p&图表的重要性不言而喻,再好的数据,如果不能有效地呈现出来也是白费功夫。&/p&&br&&p&我相信看完这个回答后,你再也不会将图做成这样。&/p&&figure&&img src=&https://pic4.zhimg.com/50/1e18c630f9843e0fbe7dc9b6dd5e77e0_b.jpg& data-rawwidth=&809& data-rawheight=&235& class=&origin_image zh-lightbox-thumb& width=&809& data-original=&https://pic4.zhimg.com/50/1e18c630f9843e0fbe7dc9b6dd5e77e0_r.jpg&&&/figure&&p&商业杂志上的这些高端大气的图是用什么软件做出来的?&/p&&figure&&img src=&https://pic2.zhimg.com/50/e879dedfce9c_b.jpg& data-rawwidth=&806& data-rawheight=&287& class=&origin_image zh-lightbox-thumb& width=&806& data-original=&https://pic2.zhimg.com/50/e879dedfce9c_r.jpg&&&/figure&&p&答案就是Excel。&/p&&br&&p&滑珠图、子弹图、瀑布图……一切都可以用Excel最基本的操作搞定。&/p&&figure&&img src=&https://pic3.zhimg.com/50/b49f624a8dfc75990dbc20315f54baab_b.jpg& data-rawwidth=&810& data-rawheight=&302& class=&origin_image zh-lightbox-thumb& width=&810& data-original=&https://pic3.zhimg.com/50/b49f624a8dfc75990dbc20315f54baab_r.jpg&&&/figure&&br&&p&我会先介绍一些设计的核心理念和方法,然后列举16个“商务范”图表制作实例,包含详细的制作步骤,最后分享一些配色方案。&/p&&br&&p&==================================================================&/p&&p&&u&目录&/u&&/p&&br&&p&&b&一、商务图表制作核心理念和方法&/b&&/p&&ol&&li&突破Excel的图表元素&br&&/li&&li&突破Excel的图表类型&br&&/li&&li&布局与细节&/li&&/ol&&p&&b&二、“商务范”图表制作实例&/b&&/p&&ol&&li&日期坐标轴妙用&br&&/li&&li&堆积柱形图妙用&br&&/li&&li&漏斗图-利用辅助列占位&br&&/li&&li&自定义Y轴刻度间距&br&&/li&&li&含加粗边缘的面积图&br&&/li&&li&图表覆盖妙用 - 横网格线覆盖于图表之上&/li&&li&为Pie图加背景图片&br&&/li&&li&仪表盘&br&&/li&&li&多数量级的几组数据同时比较&br&&/li&&li&手风琴式折叠bar图&br&&/li&&li&Water Fall 瀑布图&br&&/li&&li&不等宽柱形图&br&&/li&&li&滑珠图&br&&/li&&li&动态图表1&br&&/li&&li&动态图表2&br&&/li&&li&Bullet图-竖直&/li&&/ol&&p&&b&三、配色方案&/b&&/p&&ol&&li&Nordri设计公司分享的配色方案&br&&/li&&li&ExcelPro分享的方案&/li&&/ol&&b&四、自学参考书目和资料&/b&&br&&br&&br&&p&==================================================================&/p&&p&&u&正文&/u&&/p&&br&&p&&b&一、商务图表制作核心理念和方法&/b&&/p&&br&(这一章节的笔记整理自刘万祥老师的博客&a href=&//link.zhihu.com/?target=http%3A//excelpro.blog.sohu.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ExcelPro的图表博客&/a&)&br&&br&&p&&b&1. 突破Excel的图表元素&/b&&/p&&p&不要仅用“图表”做图表,而是用“图表+所有Excel元素(如单元格,填充色,文本框)”去做图表。&/p&&p&(在我开头举的案例中有详尽的说明)&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/e113e24f4df3df43ac52_b.jpg& data-rawwidth=&509& data-rawheight=&248& class=&origin_image zh-lightbox-thumb& width=&509& data-original=&https://pic4.zhimg.com/50/e113e24f4df3df43ac52_r.jpg&&&/figure&&p&  左上图,只有B4单元格是图表区域,标题利用的是B2;B3-B5填充浅色,&index&和&data&分别在B3、B5。&/p&&p&  右上图,B2为图表序号,C2为图表标题,填深绿色,B3为副标题,图例放在C4,图表在C5,B2到C5填充淡色,B6、C6合并填写注释。&/p&&figure&&img src=&https://pic2.zhimg.com/50/e90d6c9d186d95e5c1dbf_b.jpg& data-rawwidth=&687& data-rawheight=&287& class=&origin_image zh-lightbox-thumb& width=&687& data-original=&https://pic2.zhimg.com/50/e90d6c9d186d95e5c1dbf_r.jpg&&&/figure&&p&  左上图,标题在C2-H2居中,图表在C3-H3,利用Excel单元格的数据表在C6-H8。&/p&&p&  右上图,B2填红色装饰,标题和副标题分别在B2、B3,图表在D4-F4,数据来源在D5,标号2为矩形框,整个区域有边框。&/p&&br&&p&&b&2. 突破Excel的图表类型&/b&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/a002de8f2b35dda0d077cbb45c33740f_b.jpg& data-rawwidth=&543& data-rawheight=&299& class=&origin_image zh-lightbox-thumb& width=&543& data-original=&https://pic1.zhimg.com/50/a002de8f2b35dda0d077cbb45c33740f_r.jpg&&&/figure&&br&&p&  左上图,先用所有数据做曲线图或柱形图,然后选中相应的序列,更改图表类型,有时还需要用到次坐标轴。&/p&&p&  右上图,先做好面积图,然后将该数据序列再次加入图表,修改新序列的图表类型为曲线图,调粗线型。&/p&&br&&p&&b&3. 布局与细节&/b&&/p&&ul&&li&&b&布局&/b&&/li&&/ul&&p&  下图从上到下可以分为5个部分:&b&主标题区、副标题区、图例图、绘图区、脚注区&/b&。&/p&&p&  特点有:&b&完整的图表要素;突出的标题区;从上到下的阅读顺序&/b&。&/p&&p&&b&
标题区&/b&非常突出,占到整个图表面积1/3以上,其中主标题用大号字和强烈对比效果,副标题提供详细信息。&/p&&figure&&img src=&https://pic1.zhimg.com/50/2df4313589fca8a2f15b39_b.jpg& data-rawwidth=&332& data-rawheight=&250& class=&content_image& width=&332&&&/figure&&ul&&li&&b&竖向构图方式&/b&&br&&/li&&/ul&&p&  整个图表外围高宽比例在2:1到1:1之间,图例一般在绘图区上部或融入绘图区里面&/p&&ul&&li&&b&使用更为简洁醒目的字体&/b&&br&&/li&&/ul&&p&  商业图表多选用&b&无衬线类字体&/b&&/p&&p&  图表和表格的数字中使用&b&Arial&/b&&b&字体、&/b&&b&8~10&/b&&b&磅大小,中文使用黑体&/b&&/p&&ul&&li&&b&注意图表的细节处理&/b&&/li&1. 脚注区写上数据来源&br&2. 图标注释:对于图表中需要特别说明的地方,如指标解释、数据口径、异常数据等,使用上标或*等进行标记,在脚注区说明&br&3. 坐标轴截断标识&br&4. 四舍五入:在脚注区写明:由于四舍五入,各数据之和可能不等于总额(或100%)&br&5. 简洁的坐标轴标签:如2003、’04、’05&br&6. 让Line图从y轴开始:双击x轴,Axis Options-最下-Position Axis-on tick marks&br&7. 作图数据的组织技巧: 原始数据不等于作图数据;作图前先数据排序;将数据分离为多个序列,每个序列单独格式化&br&8. 其他: 去除绘图区的外框线,去除纵坐标轴的线条色,将网格线使用淡灰色予以弱化,bar间距小于bar宽度,饼图分块用的白色线&br&&/ul&&p&—————————————————————————————————————&/p&&br&&p&&b&二、“商务范”图表制作实例&/b&&/p&(这一章节的16个案例均出自刘万祥老师的&a href=&//link.zhihu.com/?target=http%3A//book.douban.com/subject/4326057/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Excel图表之道 (豆瓣)&/a&,该书基于Excel2003)&br&&br&最初回答中,这部分整理自我的笔记,基于英文版Excel2010。为了知友阅读方便,我以Excel 2013中文版操作了一遍,将操作步骤逐条改为了中文。&br&&br&如果你使用的是其他版本,具体操作方法会不同(我的回答中以【】注出),但“【”前面的步骤说明和思路是没有问题的。&br&&br&仪表盘、滑珠图、子弹图、瀑布图、动态图表我有自作的模板。有需要的请至 &a href=&//link.zhihu.com/?target=http%3A//pan.baidu.com/s/1c0zXVXI& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Excel templ_免费高速下载&/a&&br&&br&&b&1. 日期坐标轴妙用&/b&&br&&p&利率(y轴)随时间(x轴)的变化,我们希望得到下图所示的柱状图,横坐标的间隔按月份(3月、6月、12月、24月)分布。&/p&&figure&&img src=&https://pic4.zhimg.com/50/5fed43bc52_b.jpg& data-rawwidth=&392& data-rawheight=&219& class=&content_image& width=&392&&&/figure&&br&&p&原始数据与辅助列&i&(A列为月份,B列为利率,C列是辅助列)&/i&&/p&&figure&&img src=&https://pic1.zhimg.com/50/998f4cb6dbd06f531d3b5b1_b.jpg& data-rawwidth=&203& data-rawheight=&108& class=&content_image& width=&203&&&/figure&&br&绘制方法&p&1) 选中A2:B5,做柱状图,发现应是横坐标的A列值也成了柱子&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/b42a3cc1c9bbcfd59189b_b.jpg& data-rawwidth=&387& data-rawheight=&219& class=&content_image& width=&387&&&/figure&2) 删除系列1&/p&&p&方法1【选中图表 --& Excel标题栏图表工具 --& 设计 --& 选择数据 --& 系列1 --& 删除】&/p&&p&方法2【直接点击蓝色柱子 --& 按Delete键删除】&/p&&p&&figure&&img src=&https://pic3.zhimg.com/50/1253ff8badf166b10c855f_b.jpg& data-rawwidth=&389& data-rawheight=&217& class=&content_image& width=&389&&&/figure&3) 将横坐标转化为我们希望的A列的值&/p&&p&【选中图表 --& Excel标题栏图表工具 --& 设计 --& 选择数据 --& 水平(分类)轴标签 编辑 --& 选择区域A2:A5】&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/2da65d58a0ed95df55b90d_b.jpg& data-rawwidth=&392& data-rawheight=&193& class=&content_image& width=&392&&&/figure&&br&&p&4) 将横坐标转化为日期坐标轴 【双击横坐标 --&如下左图所示选择“日期坐标轴”】&/p&&p&得到下右图&/p&&figure&&img src=&https://pic2.zhimg.com/50/eacac970332_b.jpg& data-rawwidth=&560& data-rawheight=&243& class=&origin_image zh-lightbox-thumb& width=&560& data-original=&https://pic2.zhimg.com/50/eacac970332_r.jpg&&&/figure&&br&&p&5) 删去横坐标【选中横坐标 --& 按Delete键删除】&/p&&figure&&img src=&https://pic4.zhimg.com/50/ba14ed2c0cfbb4c5d638_b.jpg& data-rawwidth=&355& data-rawheight=&193& class=&content_image& width=&355&&&/figure&&br&&p&6) 将辅助列添加进去【选中辅助列C2:C5 --& 复制 --& 选中图表 --& 粘贴】&/p&&p&蓝色的“系列2”就是我们的辅助序列,因为值为0,所以看不到&/p&&figure&&img src=&https://pic4.zhimg.com/50/73f6efd84befc3afd059a0_b.jpg& data-rawwidth=&352& data-rawheight=&195& class=&content_image& width=&352&&&/figure&&br&&p&7) 将蓝色“系列2”转化为折线图 &/p&&p&【选中图表 --& Excel标题栏图表工具 --& 格式 --& 最左侧下拉菜单选择最后一项“系列2” --& Excel标题栏图表工具 --& 设计 --& 更改图表类型 --& 如下图所示将蓝色系列1的类型改为折线图】&/p&&figure&&img src=&https://pic3.zhimg.com/50/601dbb07b18b29e44cac_b.jpg& data-rawwidth=&469& data-rawheight=&114& class=&origin_image zh-lightbox-thumb& width=&469& data-original=&https://pic3.zhimg.com/50/601dbb07b18b29e44cac_r.jpg&&&/figure&&br&&p&得到&/p&&figure&&img src=&https://pic2.zhimg.com/50/57ff47c12e463c2b166aa7_b.jpg& data-rawwidth=&351& data-rawheight=&191& class=&content_image& width=&351&&&/figure&&br&&p&8) 让蓝色折线图的数据标签显示出来 【选中蓝色折线 --& 右击鼠标 --& 下图所示勾选数据标签“下方”】&/p&&figure&&img src=&https://pic4.zhimg.com/50/35fb21dbe365de3a65c8868_b.jpg& data-rawwidth=&660& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&660& data-original=&https://pic4.zhimg.com/50/35fb21dbe365de3a65c8868_r.jpg&&&/figure&&br&&br&9) 隐藏蓝色折线 【选中蓝色折线 --& 右击鼠标 --& 轮廓选择“无轮廓”】&br&&figure&&img src=&https://pic4.zhimg.com/50/401a15e3bcce5d072e4dc8_b.jpg& data-rawwidth=&438& data-rawheight=&245& class=&origin_image zh-lightbox-thumb& width=&438& data-original=&https://pic4.zhimg.com/50/401a15e3bcce5d072e4dc8_r.jpg&&&/figure&&br&得到&br&&figure&&img src=&https://pic3.zhimg.com/50/db29fae239d807a9c8a968_b.jpg& data-rawwidth=&392& data-rawheight=&222& class=&content_image& width=&392&&&/figure&&br&&br&10) 逐个修改横坐标 【点击选中横坐标,发现四个都选中了(下左图所示) --& 再点击第一个0,将其选中(下右图所示) --& 鼠标点击公式输入栏,输入“=”,鼠标点击A2单元格 --&回车】依次修改即可&br&&br&注意:在选中第一个0后,不要直接输入“=”,而是要在公式输入栏里输入&br&&figure&&img src=&https://pic3.zhimg.com/50/b2ae0b02b96d92e211d48e31cfc9800e_b.jpg& data-rawwidth=&505& data-rawheight=&223& class=&origin_image zh-lightbox-thumb& width=&505& data-original=&https://pic3.zhimg.com/50/b2ae0b02b96d92e211d48e31cfc9800e_r.jpg&&&/figure&&br&&br&**点评:该案例妙在利用辅助列,做出了柱状图的坐标值。当然,也有万能的办法,即不用辅助列,在完成5)之后,添加文本框作为坐标值。用本例所示的方法好处在于,源数据3、6、12、24修改之后,柱子、坐标值都会随之而动。&br&&br&&p&&b&2. &/b&&b&堆积柱形图妙用&/b&&/p&&br&&p&效果如图,看似是簇状和堆积柱形图合用,实际呢?&/p&&figure&&img src=&https://pic4.zhimg.com/50/f79fe1e1b80d27cd7035_b.jpg& data-rawwidth=&415& data-rawheight=&238& class=&content_image& width=&415&&&/figure&&br&&p&一步即可,只需在源数据上下些功夫&/p&&p&【选中下图所示B9:E20单元格 --& 绘制堆积柱形图】&/p&&br&&figure&&img src=&https://pic4.zhimg.com/50/ceae13f0ac2_b.jpg& data-rawwidth=&342& data-rawheight=&408& class=&content_image& width=&342&&&/figure&&br&**点评:利用错行和空行,奇妙无穷。&br&&br&&p&&b&3. &/b&&b&漏斗图-&/b&&b&利用辅助列占位&/b&&/p&&br&&p&效果如图,形似漏斗。 &/p&&figure&&img src=&https://pic4.zhimg.com/50/95d5da9b2100e8fec8e7_b.jpg& data-rawwidth=&328& data-rawheight=&270& class=&content_image& width=&328&&&/figure&&br&&p&原始数据 (指标需排序好,从大大小)&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/bc68c5f7f87c95f004b0c752d3058398_b.jpg& data-rawwidth=&147& data-rawheight=&167& class=&content_image& width=&147&&&/figure&&br&&p&添加辅助列 【C3单元格公式=($D$3-D3)/2,然后拉至C8】&/p&&figure&&img src=&https://pic3.zhimg.com/50/f424a2d9bade5061dcdb232e05ca5615_b.jpg& data-rawwidth=&201& data-rawheight=&182& class=&content_image& width=&201&&&/figure&&br&&p&绘制方法&/p&&p&1) 选中B3:D8,绘制堆积条形图&/p&&figure&&img src=&https://pic2.zhimg.com/50/2d27562cdad445b6dfcea9_b.jpg& data-rawwidth=&555& data-rawheight=&279& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic2.zhimg.com/50/2d27562cdad445b6dfcea9_r.jpg&&&/figure&&br&&p&2) 把漏斗倒过来,即反转纵坐标 【双击纵坐标 --& 勾选“逆序类别”】&/p&&figure&&img src=&https://pic3.zhimg.com/50/69fcbdecadfcc302e4f433_b.jpg& data-rawwidth=&557& data-rawheight=&445& class=&origin_image zh-lightbox-thumb& width=&557& data-original=&https://pic3.zhimg.com/50/69fcbdecadfcc302e4f433_r.jpg&&&/figure&&br&&br&&p&3) 将绿色系列1隐去【选中绿色条 --& 右键 --& 填充 --& 无填充颜色】&/p&&figure&&img src=&https://pic2.zhimg.com/50/82cacaaced4c_b.jpg& data-rawwidth=&206& data-rawheight=&303& class=&content_image& width=&206&&&/figure&&br&&br&**点评:辅助列永远是好帮手。&br&&br&&p&&b&4. &/b&&b&自定义Y&/b&&b&轴刻度间距&/b&&/p&&br&&p&以股价随时间变化为例,重要的是涨跌幅度,且幅度很大,这里我们采用&b&自定义Y轴&/b&间距,并以常用的&b&对数坐标&/b&为例。&/p&&br&&p&最终效果图&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/883cc3aaed1_b.jpg& data-rawwidth=&470& data-rawheight=&226& class=&origin_image zh-lightbox-thumb& width=&470& data-original=&https://pic1.zhimg.com/50/883cc3aaed1_r.jpg&&&/figure&&br&原始数据&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/e8cacdb4cddd_b.jpg& data-rawwidth=&93& data-rawheight=&226& class=&content_image& width=&93&&&/figure&&br&通过观测原始数据最小值和最大值,我们希望以20、30、50、100、400、600为刻度作为纵坐标,&/p&&p&将数据处理如下&/p&&ul&&li&C列是B列值的对数值 C2单元格公式为 =Log(B2) ,拉至C12&br&&/li&&li&F列即我们希望的刻度&br&&/li&&li&G列同理,是F列的Log值&br&&/li&&/ul&&p&&figure&&img src=&https://pic1.zhimg.com/50/0db06ac4fb29ac23bbf0af7_b.jpg& data-rawwidth=&271& data-rawheight=&222& class=&content_image& width=&271&&&/figure&&br&&br&绘制方法&/p&&p&1)选中C2:C12 绘制折线图&br&&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/bdbff8f8afa5_b.jpg& data-rawwidth=&299& data-rawheight=&108& class=&content_image& width=&299&&&/figure&2) 将G2:G7加入到图表中 【选中辅助列G2:G7 --& 复制 --& 选中图表 --& 粘贴】&/p&&p&&figure&&img src=&https://pic4.zhimg.com/50/9de80dff8f37_b.jpg& data-rawwidth=&299& data-rawheight=&139& class=&content_image& width=&299&&&/figure&3) 将新加入的蓝色折线改为散点图&/p&&p&【点击蓝色折线 --& Excel标题栏图表工具 --& 设计 --& 更改图表类型 --& 如下图所示将蓝色系列2的改为“带直线和数据标记的散点图”】&/p&&p&&figure&&img src=&https://pic4.zhimg.com/50/ddfc509f199dc_b.jpg& data-rawwidth=&393& data-rawheight=&132& class=&content_image& width=&393&&&/figure&得到&/p&&p&&figure&&img src=&https://pic4.zhimg.com/50/cf4fdead34fc650bb26ce_b.jpg& data-rawwidth=&298& data-rawheight=&139& class=&content_image& width=&298&&&/figure&4) 设置纵轴下限为1 【双击纵轴 --& 在坐标轴选项里将最小值调节为1】&/p&&p&5) 删去纵坐标轴,删去水平网格线;&/p&&p&6) 设置坐标轴在刻度线上【双击横坐标轴 --& 如下左图所示勾选“在刻度线上”】&/p&&p&得到右下图&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/751c461fcd4ec4104e3aae4a1cede834_b.jpg& data-rawwidth=&478& data-rawheight=&415& class=&origin_image zh-lightbox-thumb& width=&478& data-original=&https://pic1.zhimg.com/50/751c461fcd4ec4104e3aae4a1cede834_r.jpg&&&/figure&7) 将蓝色折线的横坐标设置为E2:E7【点击蓝色折线 --& Excel标题栏图表工具 --& 设计 --& 选择数据 --& 如左下图所示选择“系列2” --& 点击“编辑” --& 如右下图所示,X轴系列值选为E2:E7 --& 确定】&/p&&p&&figure&&img src=&https://pic4.zhimg.com/50/6918a97cab308ff603df5c27d0549822_b.jpg& data-rawwidth=&547& data-rawheight=&134& class=&origin_image zh-lightbox-thumb& width=&547& data-original=&https://pic4.zhimg.com/50/6918a97cab308ff603df5c27d0549822_r.jpg&&&/figure&得到&/p&&p&&figure&&img src=&https://pic2.zhimg.com/50/b78b9d082f8c0d9c718d6ef_b.jpg& data-rawwidth=&293& data-rawheight=&128& class=&content_image& width=&293&&&/figure&8) 让蓝色数据点的数据值显示出来 【点击蓝色直线 --& 右侧选择数据标签-左】&/p&&figure&&img src=&https://pic4.zhimg.com/50/589d1a8cfb07a3d897424_b.jpg& data-rawwidth=&562& data-rawheight=&219& class=&origin_image zh-lightbox-thumb& width=&562& data-original=&https://pic4.zhimg.com/50/589d1a8cfb07a3d897424_r.jpg&&&/figure&&br&&p&缩小一下绘图区&/p&&figure&&img src=&https://pic2.zhimg.com/50/c905c39a1a916ed3725e_b.jpg& data-rawwidth=&303& data-rawheight=&133& class=&content_image& width=&303&&&/figure&&br&&p&9) 添加误差线 【点击蓝色直线 --& 右侧选择误差线-更多选项】&/p&&figure&&img src=&https://pic2.zhimg.com/50/92ed659d00ab7d8504dbcecfe7e4b1ef_b.jpg& data-rawwidth=&520& data-rawheight=&232& class=&origin_image zh-lightbox-thumb& width=&520& data-original=&https://pic2.zhimg.com/50/92ed659d00ab7d8504dbcecfe7e4b1ef_r.jpg&&&/figure&&br&&p&此时,横纵误差线都出来了&/p&&p&10) 删除纵误差线 【点击下左图所示的位置选中纵误差线 --& 按Delete键删除】&/p&&p&得到又下图&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/2d4fd4dd65b4c43d1dff4_b.jpg& data-rawwidth=&520& data-rawheight=&142& class=&origin_image zh-lightbox-thumb& width=&520& data-original=&https://pic1.zhimg.com/50/2d4fd4dd65b4c43d1dff4_r.jpg&&&/figure&11) 调节横误差线参数 【双击横误差线 --& 在右侧弹窗里勾选“正偏差”,“固定值”改为10】&/p&&p&缩小一下绘图区,得到右下图&/p&&p&&figure&&img src=&https://pic4.zhimg.com/50/e9aabf98bb4aabea2db5cb_b.jpg& data-rawwidth=&500& data-rawheight=&437& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic4.zhimg.com/50/e9aabf98bb4aabea2db5cb_r.jpg&&&/figure&&br&12) 隐藏蓝色线 【右键蓝色直线 --& 选择无填充,无轮廓】&/p&&p&13) 调节误差线的颜色、线形 【双击误差线 --& 右侧弹窗中修改(下左图所示)】&/p&&p&得到右下图&br&&figure&&img src=&https://pic2.zhimg.com/50/2b62ba43aefe31f5e89828_b.jpg& data-rawwidth=&499& data-rawheight=&305& class=&origin_image zh-lightbox-thumb& width=&499& data-original=&https://pic2.zhimg.com/50/2b62ba43aefe31f5e89828_r.jpg&&&/figure&13) 与本回答的案例1类似,逐个修改纵坐标数据值【以2.78这个数据为例:选中纵坐标(6个数据一下子都选中了) --& 再点击2.78这个数据(如下图所示,只有2.78选中了) --& 鼠标点击公式输入栏,输入“=”,然后鼠标点击600(F7单元格) --& 回车】&/p&&figure&&img src=&https://pic2.zhimg.com/50/c6acd3ba20c5_b.jpg& data-rawwidth=&313& data-rawheight=&180& class=&content_image& width=&313&&&/figure&&br&&p&依次逐个修改,大功告成。&/p&&br&&p&**点评:本例极其巧妙地借助误差线,实现横向网格线。误差线在后续案例中会多次提及。当然,有人会说完全可以不用误差线,插入几个直线拖动就好了。但是,本例方法的好处是,修改20、50、400等坐标值,网格线也会跟着移动。&/p&&br&&p&&b&5. 含加粗边缘&/b&&b&面积图&/b&&/p&&p&最终效果与源数据&/p&&figure&&img src=&https://pic3.zhimg.com/50/3f17acf670ee130b972adb_b.jpg& data-rawwidth=&504& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&https://pic3.zhimg.com/50/3f17acf670ee130b972adb_r.jpg&&&/figure&&br&&p&绘制方法&/p&&p&1) 选中数据做折线图&/p&&figure&&img src=&https://pic4.zhimg.com/50/efa487cf60a2d_b.jpg& data-rawwidth=&271& data-rawheight=&127& class=&content_image& width=&271&&&/figure&&br&&p&2) 将源数据再次添加进图表中【选中源数据 --& 复制 --& 选中图表 --& 粘贴】&/p&&p&发现系列2覆盖住了系列1&/p&&figure&&img src=&https://pic4.zhimg.com/50/c4b9c483f8_b.jpg& data-rawwidth=&273& data-rawheight=&128& class=&content_image& width=&273&&&/figure&&br&&p&3) 将系列2改为面积图【点击选中蓝色折线 --& Excel标题栏图表工具 --& 设计 --& 更改图表类型 --& 如下左图所示将改为面积图】&/p&&p&得到下右图&/p&&figure&&img src=&https://pic1.zhimg.com/50/ca2e175de24fd97b818e4_b.jpg& data-rawwidth=&554& data-rawheight=&126& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic1.zhimg.com/50/ca2e175de24fd97b818e4_r.jpg&&&/figure&&br&&p&4) 调节坐标轴位置 【双击横坐标轴 --& 右侧弹窗中勾选“在刻度线上”】&/p&&p&得到右下图&/p&&figure&&img src=&https://pic3.zhimg.com/50/aad1e3f95ccc66173ced3df8bf2d581a_b.jpg& data-rawwidth=&459& data-rawheight=&374& class=&origin_image zh-lightbox-thumb& width=&459& data-original=&https://pic3.zhimg.com/50/aad1e3f95ccc66173ced3df8bf2d581a_r.jpg&&&/figure&&br&&p&调节颜色就好了&/p&&br&下面这个图是我做的~&figure&&img src=&https://pic4.zhimg.com/50/465fe29b0cb337cd8c370_b.jpg& data-rawwidth=&316& data-rawheight=&207& class=&content_image& width=&316&&&/figure&&br&&br&**点评:两种或多种图表类型合用的方法一定要掌握,活学活用。&br&&br&&p&&b&6. 图表覆盖妙用 - &/b&&b&横网格线覆盖于图表&/b&&b&之上&/b&&/p&&p&最终效果&figure&&img src=&https://pic3.zhimg.com/50/12fb1e14c32e57e05b5ad2_b.jpg& data-rawwidth=&201& data-rawheight=&222& class=&content_image& width=&201&&&/figure&&br&&/p&&p&绘制方法&/p&&p&以柱状图为例 (其他类型的图都一样)&/p&&br&&p&源数据&/p&&p&&figure&&img src=&https://pic3.zhimg.com/50/ccbab056e32c_b.jpg& data-rawwidth=&105& data-rawheight=&139& class=&content_image& width=&105&&&/figure&1) 绘制柱形图&/p&&p&&figure&&img src=&https://pic3.zhimg.com/50/dcec03ec4e1e968ab1515_b.jpg& data-rawwidth=&324& data-rawheight=&180& class=&content_image& width=&324&&&/figure&2) 将其锚定 【鼠标光标移动到下图所示的图表左上角的顶点处,按住Alt,随后按住鼠标进行拖动,发现这样调节图表的尺寸,限定于Excel的网格点。】&/p&&br&&figure&&img src=&https://pic3.zhimg.com/50/d5c8f429df4ab9ba878bb3f54f296a36_b.jpg& data-rawwidth=&108& data-rawheight=&62& class=&content_image& width=&108&&&/figure&&br&&p&如下图所示,将四个角分别锚定于D2,G2,D9, G9&/p&&figure&&img src=&https://pic3.zhimg.com/50/8b88aeeaabca_b.jpg& data-rawwidth=&379& data-rawheight=&179& class=&content_image& width=&379&&&/figure&&br&&p&3) 复制图表【选中图表 --& 复制 --& 鼠标点击任意一个单元格 --& 粘贴】&/p&&p&得到左右两个一模一样的图表&/p&&figure&&im

我要回帖

更多关于 铁板鱿鱼须 的文章

 

随机推荐