一、fig, ax = plt.subplots()的作用?

它是用来创建 总画布/figure“窗口”的,有figure就可以在上边(或其中一个子网格/subplot上)作图了,(fig:是figure的缩写)。

plt.subplot(111)是plt.subplot(1, 1, 1)另一个写法而已

fig, ax = plt.subplots()等价于fig, ax = plt.subplots(11)

fig, axes = plt.subplots(23):即表示一次性在figure上创建成23的网格,使用plt.subplot()只能一个一个的添加[引用链接]:*

fig = plt.figure()

ax = plt.subplot(231)

ax = plt.subplot(232)

ax = plt.subplot(233)

ax = plt.subplot(234)

ax = plt.subplot(235)

ax = plt.subplot(236)

二、参数的含义?

首先看 fig = plt.figure()

matpltlib.pyplot.figure(

num = None, # 设定figure名称。系统默认按数字升序命名的figure_num(透视表输出窗口)e.g. “figure1”。可自行设定figure名称,名称或是INT,或是str类型;

figsize=None, # 设定figure尺寸。系统默认命令是rcParams["figure.fig.size"] = [6.4, 4.8],即figure长宽为6.4 * 4.8;

dpi=None, # 设定figure像素密度。系统默命令是rcParams["sigure.dpi"] = 100;facecolor=None, # 设定figure背景色。系统默认命令是rcParams["figure.facecolor"] = 'w',即白色white;

edgecolor=None, frameon=True, # 设定要不要绘制轮廓&轮廓颜色。系统默认绘制轮廓,轮廓染色rcParams["figure.edgecolor"]='w',即白色white;

FigureClass=, # 设定使不使用一个figure模板。系统默认不使用;clear=False, # 设定当同名figure存在时,是否替换它。系统默认False,即不替换。

** kwargs)

然后看ax = plt.subplot()

三、怎么在一个图上排列多个子图?

比如说我们想画个2*2的子图,每个子图对应一个表。

先重点考虑2个步骤。

· 第1个步骤:创建多维窗口:

fig, axes = plt.subplots(2, 2) # 此处是一个2*2的图

· 第2个步骤:设定各个透视子图在窗口的位置:

data.plot.bar(ax=axes[1,1], color='b', alpha=0.5) # ax=[1,1] 即位置是第2行、第二列。(python从0开始计数,所以“1”代表第2的)

data.plot.barh(ax=axes[0,1], color='k', alpha=0.5) # alpha:设定图表的透明度;

再添加子透视图代码。

· 第3个步骤:得到完整的代码:

import pandas as pdimport numpy as npimport matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2)

data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop'))

data.plot.bar(ax=axes[1,1], color='b', alpha = 0.5)

data.plot.barh(ax=axes[0,1], color='k', alpha=0.5) plt.show()

image

四、怎么把多个子图一起合并到一个图上?

最主要的一点是让多个图线共用一个x坐标轴。

语句规定N个折线图共用一个x坐标(注意:y轴分主副轴):

import numpy as np

import matplotlib.pyplot as plt

fig, ax1 = plt.subplots(1, 1) # 做1*1个子图,等价于 " fig, ax1 = plt.subplot() ",等价于 " fig, ax1 = plt.subplots() "

ax2 = ax1.twinx() # 让2个子图的x轴一样,同时创建副坐标轴。

# 作y=sin(x)函数

x1 = np.linspace(0, 4 * np.pi, 100)

y1 = np.sin(x1)

ax1.plot(x1, y1)

# 作y = cos(x)函数

x2 = np.linspace(0, 4 * np.pi, 100) # 表示在区间[0, 4π]之间取100个点(作为横坐标,“线段是有无数多个点组成的”)。

y2 = np.cos(x2)

ax2.plot(x2, y2)

plt.savefig('sin_cos_2.png') # 将窗口另存为png格式图片

image

如果需要主副y轴都一样:就把ax1和ax2它俩用ax一个取代了。

自定义图表样式:比如旋转x轴标签、上边和右边的坐标轴不显示、曲线和y轴对齐等

import matplotlib.pyplot as plt

plt.rcParams['font.family'] = ['SimHei'] # 解决不能输出中文的问题。不区分大小写,即SimHei’效果等价于‘simhei’,中括号可以不要

plt.rcParams['figure.autolayout'] = True # 解决不能完整显示的问题(比如因为饼图太大,显示窗口太小)

fig, ax = plt.subplots(1, 1, figsize=(12, 9)) # 进一步设定fig的size为12*9

ax.spines['top'].set_visible(False) # 不显示图表框的上边框

ax.spines['right'].set_visible(False) # 不显示图表框的右边框

ax.set_xlim(0, 10) # 有时候x轴不会从0显示,使得折线图和y轴有间隙

ax.set_ylim(0, 1.3e8) # 和x轴同理

plt.xticks(range(0, 10), fontsize=12, rotation=80) # 针对x轴的标签,指定我们想要设定的范围是(0, 10), 字体大小是12, 逆时针旋转80°

plt.tick_params(bottom='off', left='off', labelbottom='on', lableleft='on') # 使x轴和y轴不带比例标识点, labelbottom设定下边、即x轴的标签是否显示。

< blabla... >

plt.suptitle('自定义图表', fontsize=400, ha='center') # 即标题在x轴和y轴形成的方框内部,如下图(详细用法见下注释)。如果需要标题在这上方,使用 plt.title(blabla)

plt.show()

"""

对于multiple subplots一般情况下,

1)设置 plt.xticks(range(0, 10))只会对最后一个ax起作用。要想作用于所有subplots,要这样:

for ax in axes:

ax.set_xticks(range(0, 10))

2)标题:显示中文方面-在各个子图上要这样:

plt.title('某个子图的中文title', fontproperties='simhei'),

因为plt.rcParams['font.family'] = 'simhei' 只对整体的标题是有效的。

整体的标题要这样设置:

plt.suptitle(‘全体子图的中文title’)

3)xticks的旋转方面。例如上面的主副坐标轴的共x轴,要这样:

ax1.set_xticklabels(['str format labels'], rotation=80)

而这样的设置无效:plt.xticks(x, rotation=80)。

"""

image

注:

matplotlib.pyplot.suptitle(

t, # text缩写。即标题文字。

fontsize | size, # 设定字体大小。

x, # 设定标题相对于x轴的位置,默认是'0.5'。

y, # 设定标题相对于y轴的位置,默认是'0.98'。

ha | horizontalalignment, # 和参数x一起使用,设定标题水平方位,默认是‘center’。共3个可选值{'center', 'left', right'}。

va | verticalalignment, # 和参数y一起使用,设定标题垂直方位, 默认是'top'。共4个可选值{'top', 'center', 'bottom', 'baseline'}。

fontweight | weight # 设定字体权重。

)

plt画网格图_python 可视化:fig, ax = plt.subplots()画多表图的3中常见样例 自定义图表格式...相关推荐

  1. python 可视化:fig, ax = plt.subplots()画多表图的3中常见样例 自定义图表格式

    目录 一.fig, ax = plt.subplots()的作用? 二.参数的含义? 三.怎么在一个图上排列多个子图? 四.怎么把多个子图一起合并到一个图上? <Python for Data ...

  2. fig,ax = plt.subplots()

    它是用来创建 总画布/figure"窗口"的,有figure就可以在上边(或其中一个子网格/subplot上)作图了,(fig:是figure的缩写). fig, ax = plt ...

  3. 【python matplotlib 】fig, ax = plt.subplots()画多表图

    文章目录 一. fig, ax = plt.subplots()的作用 二.参数的含义 三.图上排列多个子图 四.把多个子图一起合并到一个图上 五.画图刻度.图例等字体.字体大小.刻度密度.线条样式设 ...

  4. python subplots_python fig,ax = plt.subplots()

    fig,ax = plt.subplots() 使用该函数确定图的位置,掉用时要XXX=ax.(ax是位置) 等价于:fig = plt.figure() ax = fig.add_subplot(1 ...

  5. python 节点关系图_python可视化节点关系(三):matplotlib(1)

    接下来,开始记录使用matplotlib这个号称python使用最广泛的图形库,所遇到的种种神坑. 一. 画节点图: 1. 画节点和箭头 查阅api文档,觉得annotate类封装的不错. impor ...

  6. python 节点关系图_python 可视化节点关系(一):networkx

    前言 工作需要将各个类之间的关系用网络图描述出来. 查阅相关资料,主要有如下方式: networkx qtgraph matplotlib 一.networkx networkx是用Python语言开 ...

  7. python中fig_Matplotlib画图中fig,ax,plt的区别和联系

    用python两年多了,然而至今画图时依然会对群魔乱舞的Matplotlib对象感到困惑,尤其是看起来作用都类似的fig,ax和plt以及各种各样的subplot. 我们先来看以下三个示例 # C1 ...

  8. python bar图_python可视化(matplotlib条形图、散点图)

    这一学习一下条形图和散点图的画法. 首先是条形图: import pandas as pd import matplotlib.pyplot as plt import numpy as np fro ...

  9. python使用使用对数坐标系 fig, ax = plt.subplots() ax.set_xscale(“log“) ax.set_yscale(“log“)

    python使用使用对数坐标系 newX = [] newY = [] for i in range(len(x)):if y[i] != 0 :newX.append(x[i])newY.appen ...

最新文章

  1. 转 Hystrix入门指南 Introduction
  2. python处理多个excel文件-Python将多个excel文件合并为一个文件
  3. 在linux下Qt使用sqlite,QT中SQLite使用【实例】
  4. datalength,求字符串的字节数
  5. python typing typescript_将 python 数据转化为 TypeScript 格式
  6. secureCRT及secureFX安装注册和secureFX中出现中文乱码的处理方式
  7. 2013浙大878计算机网络大题答案解析
  8. linux apach2 内存,Apache2.2.14(Ubuntu)修改最大连接数
  9. 转载:8个让程序员追悔莫及的职业建议
  10. 目前最常用的计算机机箱类型为_2016年自考《计算机应用基础》精选习题四
  11. 语音领域的波束形成Beamforming小结
  12. 图像的均值、均方值、方差、均方差、标准差
  13. vue侧边栏菜单一二级模板
  14. 什么是开源软件? 开源和FOSS解释
  15. 通常网站当中的关键词密度如何控制呢
  16. Win7虚拟机无法连接网络怎么办?已解决!!
  17. 2021 年 8 月全国程序员薪酬出炉:北京18904元位居榜首
  18. 比python更高级的语言 j_算法X Python实现
  19. java飞机大战编程_[源码和文档分享]Java飞机大战游戏设计与实现
  20. proxifier 代理bluestack

热门文章

  1. 移动硬盘无法打开如何恢复数据
  2. 【POJ2251】Dungeon Master(三维BFS)
  3. Spring task定时任务执行一段时间后莫名其妙停止的问题
  4. 数据仓库面试题整理超详细
  5. 可穿戴医疗设备是“香饽饽”,但也有数据和安全之痛
  6. CreateInstance 80040154错误码,缺少注册类解决方法
  7. 邮箱如何关闭掉CSDN的消息通知
  8. 小数视力表转换成对数视力表_如何用视力表建立班级预订系统
  9. 光流定点悬停算法c语言代码,opencv3/C++实现光流点追踪
  10. mac os 录屏快捷键_一睹win、Mac常用录屏软件!