范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python数据可视化利器Matplotlib从入门到高级3

  Matplotlib的本质是基于对象的,我们从下面这幅图开始介绍Matplotlib的各种重要的对象。
  Matplotlib 绘图的主要构成部分
  这张图当然可以使用Matplotlib代码绘制出来,我将在文章的结尾处放出绘图的源代码,以便大家对照源代码理解绘图中的各种对象。大家也可以自己去官方文档中搜索关键词"Anatomy"下载。当然,这张图的具体绘制方法不是这里的重点。我们关注的是这张绘图中的各个对象——图中用蓝色字体和黑色圆圈标出来的部分。下面为大家一一介绍:Figure
  Figure即图形,指的是整个绘图,大家能看到的所有部分都属于Figure。创建新图形最简单的方法是使用pyplot:fig = plt.figure()  # 创建一个空图 fig, ax = plt.subplots()  # 创建带有一个 Axes 的图形 fig, axs = plt.subplots(2, 2)  # 创建一个带有 2x2网格 Axes的图形
  如果增加一句 plt.show() (大家别忘了导入模块)就可以显示出这三张图形来。其中第一句代码生成的图片就是一张白板,什么内容都没有;第二句代码生成的是一个带有坐标系的空图;第三句代码则会生成一个呈网格状分布的由四个坐标系组成的空图。下面附上的是第三张图。
  2 2网格的Axes组成的空绘图
  一般情况下,我们使用第二句或第三句在实例化一个Figure对象的同时创建一个Axes。但也可以使用第一句创建一个空的Figure,然后使用类似于下面的代码手动生成Axes(Axes到底是什么?相信你一定会问):ax = fig.subplots()Axes
  我们在上一段已经提到了Axes,但没有深入解释它。需要特别注意的是这里的Axes并不是Axis的复数形式(吐槽一下使用Axes名称的Matplotlib设计师),而是Figure上一个由两个(x轴、y轴)坐标轴(包括坐标轴在内)围成的可供绘制数据的区域,我们可以将它称为"轴域"。一张图就是一个Figure,但一个Figure可以有一个或多个轴域,就像上面附的图上就有四个轴域。每个Axes都有一个标题(通过 set_title()设置,默认为None)、一个x轴标签(通过set_xlabel()设置)以及一个y轴标签(通过set_xlabel()设置)。
  Axes类及其成员函数是使用面向对象接口的主要入口点,Matplotlib在其上定义了大多数绘图方法(例如我们前一篇介绍Matplotlib面向对象的代码风格时用到的 ax.plot()方法)。
  注意:如果是3D图的话,那么每个轴域则是由三个坐标系围成的绘图区域构成。Axis
  Axis就是坐标轴。在Matplotlib的2D绘图中,每个Axes都有两个平行的同类型轴(比如上下两个水平的x轴,左右两个垂直的y轴,极坐标等非常规图除外),它们刚好围成一个矩形区域。默认情况下,左边的y轴和下边的x轴都带有数字(其实是个字符串)刻度标签(tick label)和刻度(tick);而上边的x轴和右边的y轴则只有一根光凸凸的线。这根光凸凸的线就是所谓的"Spines",轴脊线。刻度标签和刻度都有主标签/刻度(Major)和次标签/刻度(Minor)之分,通常主标签/刻度要突出一些。组成Axis的这些刻度(实际上是Line2D对象)和标签(实际上是Text对象)本身也是对象,也可以进行单独的设置。Artist
  直译的话,可以叫作艺术家。Matplotlib把画布(canvas,这是一个底层概念,涉及到它的地方不多)想像成一个舞台,所有在这个舞台上展示自我的都被形象的称作艺术家Artist,比如文本对象Text、2D曲线对象Line2D(图上用蓝色"Line"文字示出的就是两个2D曲线对象)等。Artist的范围非常广泛,甚至包括我们前面提到的三种对象(Figure、Axes、Axis)。后面专门讲一讲它。
  现在组成图中还有三个对象没介绍,它们分别是:Legend图例、Grid网格线和Markers点标记。网格线比较简单,不单独说了;点标记的边线和中间区域可以使用不同的颜色;Legend的设置比较丰富,后面争取专门介绍。小结
  Artist对象包括了所有在我们的绘图舞台上展示各种造型的所有对象。Figure就是整个图形,它包括一个或多个Axes对象。Axes对象则包括多个Axis对象,而我们在绘图过程中打交道最多的可能就是Axes对象。在后面的介绍中我们将会了解到Figure、Axes和Axis实际上都是一类容器对象。
  Matplotlib绘图中的最主要对象就是这些。那么今天的内容就到这里为止,最后附上文章开头的那个组成图的绘图代码:import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker import AutoMinorLocator, MultipleLocator, FuncFormatter  np.random.seed(19680801)  X = np.linspace(0.5, 3.5, 100) Y1 = 3+np.cos(X) Y2 = 1+np.cos(1+X/0.75)/2 Y3 = np.random.uniform(Y1, Y2, len(X))  fig = plt.figure(figsize=(8, 8)) ax = fig.add_subplot(1, 1, 1, aspect=1)   def minor_tick(x, pos):     if not x % 1.0:         return ""     return "%.2f" % x  ax.xaxis.set_major_locator(MultipleLocator(1.000)) ax.xaxis.set_minor_locator(AutoMinorLocator(4)) ax.yaxis.set_major_locator(MultipleLocator(1.000)) ax.yaxis.set_minor_locator(AutoMinorLocator(4)) ax.xaxis.set_minor_formatter(FuncFormatter(minor_tick))  ax.set_xlim(0, 4) ax.set_ylim(0, 4)  ax.tick_params(which="major", width=1.0) ax.tick_params(which="major", length=10) ax.tick_params(which="minor", width=1.0, labelsize=10) ax.tick_params(which="minor", length=5, labelsize=10, labelcolor="0.25")  ax.grid(linestyle="--", linewidth=0.5, color=".25", zorder=-10)  ax.plot(X, Y1, c=(0.25, 0.25, 1.00), lw=2, label="Blue signal", zorder=10) ax.plot(X, Y2, c=(1.00, 0.25, 0.25), lw=2, label="Red signal") ax.plot(X, Y3, linewidth=0,         marker="o", markerfacecolor="w", markeredgecolor="k")  ax.set_title("Anatomy of a figure", fontsize=20, verticalalignment="bottom") ax.set_xlabel("X axis label") ax.set_ylabel("Y axis label")  ax.legend(loc=1)   def circle(x, y, radius=0.15):     from matplotlib.patches import Circle     from matplotlib.patheffects import withStroke     circle = Circle((x, y), radius, clip_on=False, zorder=10, linewidth=1,                     edgecolor="black", facecolor=(0, 0, 0, .0125),                     path_effects=[withStroke(linewidth=5, foreground="w")])     ax.add_artist(circle)   def text(x, y, text):     ax.text(x, y, text, backgroundcolor="white",             ha="center", va="top", weight="bold", color="blue")   # Minor tick circle(0.50, -0.10) text(0.50, -0.32, "Minor tick label")  # Major tick circle(-0.03, 4.00) text(0.03, 3.80, "Major tick")  # Minor tick circle(0.00, 3.50) text(0.00, 3.30, "Minor tick")  # Major tick label circle(-0.15, 3.00) text(-0.15, 2.80, "Major tick label")  # X Label circle(1.80, -0.27) text(1.80, -0.45, "X axis label")  # Y Label circle(-0.27, 1.80) text(-0.27, 1.6, "Y axis label")  # Title circle(1.60, 4.13) text(1.60, 3.93, "Title")  # Blue plot circle(1.75, 2.80) text(1.75, 2.60, "Line (line plot)")  # Red plot circle(1.20, 0.60) text(1.20, 0.40, "Line (line plot)")  # Scatter plot circle(3.20, 1.75) text(3.20, 1.55, "Markers (scatter plot)")  # Grid circle(3.00, 3.00) text(3.00, 2.80, "Grid")  # Legend circle(3.70, 3.80) text(3.70, 3.60, "Legend")  # Axes circle(0.5, 0.5) text(0.5, 0.3, "Axes")  # Figure circle(-0.3, 0.65) text(-0.3, 0.45, "Figure")  color = "blue" ax.annotate("Spines", xy=(4.0, 0.35), xycoords="data",             xytext=(3.3, 0.5), textcoords="data",             weight="bold", color=color,             arrowprops=dict(arrowstyle="->",                             connectionstyle="arc3",                             color=color))  ax.annotate("", xy=(3.15, 0.0), xycoords="data",             xytext=(3.45, 0.45), textcoords="data",             weight="bold", color=color,             arrowprops=dict(arrowstyle="->",                             connectionstyle="arc3",                             color=color))  ax.text(4.0, -0.4, "Made with http://matplotlib.org",         fontsize=10, ha="right", color=".5") plt.show()

如此脑洞大开联想宣布全面搭载国产电脑操作系统近段时间,知名大咖手撕联想,很多自媒体作者积极参与,关注联想的热度非常高。同时,有关联想的传言甚嚣尘上,虚虚实实,没有得到权威机构的进一步证实。个别公司在网上发帖声明不再使用联想电应该把骗任正非200万元的骗子揪出来吗?身价千亿的华为总裁任正非曾差点因为200万走上绝路。那是1987年,任正非还在南海石油给人打工,当时他接到了一项价值200万的订单,但没想到交货后对方却人间蒸发了。他因此被赶出了公1。联想六宗罪,是否属实?最近联想事件再次引起大家关注。什么联想事件升级,司柳之争正式开始,270家媒体围攻,四次报警等频频出现在各大社交平台,让人难免好奇,事件究竟是如何?联想曾经的世界销量第一,为民族品12月金股数据支持勾股大数据(www。gogudata。com)格隆汇研究院从各大核心会员群的日常的讨论与交流中进行搜集与筛选,选出月度金股组合,不构成投资建议,仅供各位朋友研究分享锂电当升360安全卫士windows10电脑版360安全卫士windows10电脑版是360和微软合作推出的一款电脑安全防护软件,该版本除了经典的查杀修复电脑清理优化加速安全防护中心等功能之外,最主要的是可以免费将你的winx玩游戏不受线制!北通蝙蝠4无线游戏手柄体验喜爱玩游戏的玩家都知道,得心应手的外设产品是影戏取得胜利的关键,尤其是PC游戏玩家,各种不同的游戏外设能够让我们更加愉快的玩耍,诸如一些格斗类游戏等用游戏手柄来玩更加带劲!此次我们从事电子烟业务须取得许可证支付宝与银联全面实现互联互通财经晚6点财经新闻从事电子烟业务须取得许可证国家烟草专卖局就电子烟管理办法(征求意见稿)公开征求意见。文件提出,设立电子烟生产企业电子烟代加工企业电子烟品牌持有企业和电子烟用烟碱生产企业,必人类的探测器潜入10000多米深的马里亚纳海沟,到底发现了什么?马里亚纳海沟,又称马里亚纳群岛海沟,是目前已知世界上最深的海沟。(海洋剖面图解)马里亚纳海沟地处北太平洋西部海床,靠近关岛的马里亚纳群岛的东方。马里亚纳海沟在海平面以下的深度远远超人工肾的发展历程是怎么样的?肾病发展至终末期,肾脏失去绝大部分功能,就是我们通常说的尿毒症。目前对尿毒症患者的治疗,包括透析和肾移植治疗。但是由于肾源紧缺,能配型上并成功移植的患者少之又少透析治疗,一般每周需2K左右的手机哪个性价比更好?题主说的OPPOK7X,ViVOS7t,lQOOZ3和小米11青春版这几款产品,在现在看来都不怎么样了,目前2K左右性价比高的产品主要就是红米K40,红米K40游戏增强版,Real荣耀真旗舰登场,骁龙888100W,对标华为P50在去年年底,荣耀品牌正式与华为脱离关系,最终荣耀品牌还是走向了独立。不过荣耀品牌的独立也可能是荣耀走向巅峰的关键,没有了华为体系的束缚,荣耀品牌可以拥有更多的供应商,多了一种生存方
联想小新pro14VSyoga14s,两款都是高热度笔记本,选哪款最划算目前,市面上卖的最火爆的轻薄本还是联想占主导,像联想小新pro14和yoga14s就是两款高热度轻薄笔记本,很受年轻消费者的喜爱。由于这两款笔记本电脑的核心硬件及屏幕配置差距不是太微软联合创始人比尔盖茨与梅琳达宣布离婚热点据央视新闻消息,当地时间3日,比尔盖茨与梅琳达通过联合声明,宣布结束双方27年的婚姻,声明中称,两人认为继续保持婚姻关系已经无法让彼此继续提升。在联合声明中,二人表示在经过了许国人当下活得已经很累,互联网企业推出715,真是雪上加霜最近很多有关打工人的网络语言打工人,打工魂,我喜欢上班。听上去是高校,却表达了上班族对于社会现象的不满。996刚走,715又被推上来了。所谓996就是上午9点上班,晚上9点下班,每秒批!银行加快数字人民币钱包审核数字人民币迎来新一轮的红包雨,银行在狂撒优惠的同时,也加快了对数字人民币钱包的通过速度。撰文张浩东出品支付百科随着三亚海旅免税城完成首笔数字人民币离岛免税购物支付,数字人民币的应用华润万家推出数字人民币专属优惠,试点门店陆续增加中来源读特4月初,深圳罗湖区发放新一波数字礼包,面向深圳地区数字人民币APP用户推出总计1000万元的优惠福利。作为试点企业之一,华润万家再次积极参加数字人民币支付试点及系列优惠活动黄益平数字人民币走在前列但能否走出去面临挑战目前,各国央行正在加快央行数字货币(CentralBankDigitalCurrency,简称CBDC)的研究工作。英国计划推出央行数字货币,而美国也于近期计划对相关方面加强监管。五一新规,APP不能再随意收集个人信息!这些点和你息息相关大量APP超范围收集个人信息,遭大众诟病很久了。随便安装一个阅读App,被要求访问通讯录,下载健身APP,被请求访问手机相册表面上看,商家似乎尽到了告知义务,但实际上,使用者也只能全球最畅销的5G手机三星跌出前三,OPPO成为国产品牌最大赢家众所周知,每个季度结束之后的相关市场调研机构都会公布各种五花八门的市场报告,其中最受关注的莫过于基于市场份额的品牌排名。日前,调研机构Canalys科纳仕咨询发布了2021年一季度请问有好的免费的图片编辑软件推荐吗?图片编辑软件介绍了以下几个,希望对你有帮助。1。最常用的还是photoshop了,photoshop是收费的,但可以在网上下载破解版的。是一款专门用于修改图片和照片的软件。可以抠图第三大操作系统横空出世!华为鸿蒙或下月规模化推送网友公测体验如丝般顺滑来源海报新闻5月6日,华为终端有限公司正式开通了华为HarmonyOS的官方微博。5月7日上午消息,华为鸿蒙有望下月规模化推送登上微博热搜,华为鸿蒙系统再次受到网友的广泛关注。目前从5988降到3599元,华为顶级5G旗舰降成二手价,麒麟990256GBTech分析狮5月6日消息,华为Mate40系列手机事实上已成为华为最后的绝唱,也是如今安卓高端机市场最受欢迎的旗舰机型。不过,也因为该机系列的芯片断供,所以造成华为Mate40系