数据可视化模块 Matplotlib详解

news2025/7/9 3:33:31

本文主要介绍python 数据可视化模块 Matplotlib,并试图对其进行一个详尽的介绍。
通过阅读本文,你可以:

  1. 了解什么是 Matplotlib
  2. 掌握如何用 Matplotlib 绘制各种图形(柱状图、饼状图、直方图等)
  3. 掌握如何定制图形的颜色和样式
  4. 掌握如何用 Matplotlib 绘制三维图

文章目录

  • 前言
  • 1 matplotlib 开发环境搭建
  • 2 绘制基础
    • 2.1 绘制直线
    • 2.2 绘制折线
    • 2.3 设置标签文字和线条粗细
    • 2.4 绘制一元二次方程的曲线 y=x^2
    • 2.5 绘制正弦曲线和余弦曲线
  • 3 绘制散点图
  • 4 绘制柱状图
  • 5 绘制饼状图
  • 6 绘制直方图
  • 7 绘制等高线图
  • 8 绘制三维图
  • 总结


前言

为了将数据变成所有人都喜欢的图形,就需要使用本文要介绍的数据可视化库Matplotlib。当然,还有很多类似的程序库。但 Matplotlib 的功能更强大,而且可以很容易与Numpy、Pandas 等程序库结合在一起使用。
Matplotlib 是一个 Python 的 2D 绘图库。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。学习 Matplotlib,可让数据可视化,更直观的真实给用户。使数据更加客观、更具有说服力。 Matplotlib 是 Python的库,又是开发中常用的库。


1 matplotlib 开发环境搭建

如果使用的是 Anaconda Python 开 发 环 境 , 那 么Matplotlib 已 经 被 集 成 进Anaconda,并不需要单独安装。
如果使用的是标准的Python 开发环境,可以使用下面的命令安装 Matplotlib,语法格式如下:

pip install matplotlib

如果要了解 Matplotlib 更详细的情况,请访问官方网站。网址如下:https://matplotlib.org。
安装完 Matplotlib 后,可以测试一下 Matplotlib 是否安装成功。进入 Python 的环境使用下面的语句导入 matplotlib.pyplot 模块。如果不出错,就说明 Matplotlib 已经安装成功了。

import matplotlib.pyplot as plt

2 绘制基础

在使用 Matplotlib 绘制图形时,其中有两个最为常用的场景。一个是画点,一个是画线。
pyplot 基本方法的使用如下。
在这里插入图片描述

2.1 绘制直线

在使用 Matplotlib 绘制线性图时,其中最简单的是绘制线图。在下面的实例代码中,使用 Matplotlib 绘制了一个简单的直线。具体实现过程如下:

  1. 导入模块 pyplot,并给它指定别名 plt,以免反复输入 pyplot。在模块 pyplot中包含很多用于生产图表的函数。
  2. 将绘制的直线坐标传递给函数 plot()。
  3. 通过函数 plt.show()打开 Matplotlib 查看器,显示绘制的图形。

【示例 1】使用 matplotlib 根据两点绘制一条线

import matplotlib.pyplot as plt 
#将(0,1)点和(2,4)连起来
plt.plot([0,2],[1,4])
plt.show()

在这里插入图片描述

2.2 绘制折线

在上述的实例代码中,使用两个坐标绘制一条直线,接下来使用平方数序列 1、4、9、16 和 25 来绘制一个折线图。

【示例 2】使用 matplotlib 绘制折线图

import matplotlib.pyplot as plt 
x=[1,2,3,4,5] 
squares=[1,4,9,16,25] 
plt.plot(x,squares)
plt.show()

在这里插入图片描述

2.3 设置标签文字和线条粗细

在上面的实例直线结果不够完美,开发者可以绘制的线条样式进行灵活设置。例如:可以设置线条的粗细、设置文字等。

【示例 3】使用 matplotlib 绘制折线图并设置样

import matplotlib.pyplot as plt 
datas=[1,2,3,4,5] 
squares=[1,4,9,16,25]
plt.plot(datas,squares,linewidth=5) 
#设置线条宽度#设置图标标题,并在坐标轴上添加标签plt.title('Numbers',fontsize=24) 
plt.xlabel('datas',fontsize=14) 
plt.ylabel('squares',fontsize=14)
plt.show()

在这里插入图片描述
Matplotlib 默认情况不支持中文,可以使用以下简单的方法来解决:

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签

【示例 4】解决标签、标题中的中文问题

import matplotlib.pyplot as plt
datas=[1,2,3,4,5]
squares=[1,4,9,16,25] 
plt.plot(datas,squares,linewidth=5) 
#设置线条宽度#设置中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei'] 
#设置图标标题,并在坐标轴上添加标签
plt.title('标题设置',fontsize=24) 
plt.xlabel('x 轴',fontsize=14)
plt.ylabel('y 轴',fontsize=14)
plt.show()

在这里插入图片描述

2.4 绘制一元二次方程的曲线 y=x^2

Matplotlib 有很多函数用于绘制各种图形,其中 plot 函数用于曲线,需要将 200 个点的x 坐标和 Y 坐标分别以序列的形式传入 plot 函数,然后调用 show 函数显示绘制的图形。一元二次方程的曲线。

【示例 5】使用 matplotlib 绘制一元二次方程曲线

import matplotlib.pyplot as plt 
#200 个点的 x 坐标
x=range(-100,100)
#生成 y 点的坐标
y=[i**2 for i in x ] 
#绘制一元二次曲线
plt.plot(x,y)
#调用 savefig 将一元二次曲线保存为 result.jpg
#plt.savefig('result.jpg') #如果直接写成 plt.savefig('cos')  会生成 cos.png
plt.show()

在这里插入图片描述

2.5 绘制正弦曲线和余弦曲线

使用 plt 函数绘制任何曲线的第一步都是生成若干个坐标点(x,y),理论上坐标点是越多越好。本例取 0 到 10 之间 100 个等差数作为 x 的坐标,然后将这 100 个 x 坐标值一起传入 Numpy 的 sin 和 cos 函数,就会得到 100 个 y 坐标值,最后就可以使用 plot 函数绘制正弦曲线和余弦曲线。

【示例 6】使用 matplotlib 绘制正弦曲线和余弦曲线

import matplotlib.pyplot as plt
import numpy as np
#生成 x 的坐标(0-10 的 100 个等差数列)
x=np.linspace(0,10,100)
sin_y=np.sin(x) 
#绘制正弦曲线
plt.plot(x,sin_y) 
#绘制余弦曲线
cos_y=np.cos(x) 
plt.plot(x,cos_y) 
plt.show()

在这里插入图片描述
上面的示例可以看到,调用两次 plot 函数,会将 sin 和 cos 曲线绘制到同一个二维坐标系中,如果想绘制到两张画布中,可以调用 subplot()函数将画布分区。

import matplotlib.pyplot as plt
import numpy as np
#将画布分为区域,将图画到画布的指定区域
x=np.linspace(1,10,100)
#将画布分为 2 行 2 列,将图画到画布的 1 区域
plt.subplot(2,2,1)
plt.plot(x,np.sin(x))
plt.subplot(2,2,3)
plt.plot(x,np.cos(x))
plt.show()

在这里插入图片描述

3 绘制散点图

使用 scatter 函数可以绘制随机点,该函数需要接收 x坐标和 y 坐标的序列。

【示例 8】使用 matplotlib 绘制 sin()函数的散点图

import matplotlib.pyplot as plt
import numpy as np
#画散点图
x=np.linspace(0,10,100)
#生成 0 到 10 中 100 个等差数
plt.scatter(x,np.sin(x))
plt.show()

在这里插入图片描述
【示例 9】绘制 10 种大小 100 种颜色的散点图

import matplotlib.pyplot as plt
import numpy as np
#  画 10 种大小, 100 种颜色的散点图
np.random.seed(0) 
x=np.random.rand(100) 
y=np.random.rand(100) 
colors=np.random.rand(100) 
size=np.random.rand(100)*1000
plt.scatter(x,y,c=colors,s=size,alpha=0.7)
plt.show()

在这里插入图片描述
作为线性图的替代,可以通过向 plot() 函数添加格式字符串来显示离散值。 可以使用如表 2-2 格式化字符。
在这里插入图片描述在这里插入图片描述
颜色的缩写如下:
在这里插入图片描述
【示例 10】绘制不同种类不同颜色的线

import matplotlib.pyplot as plt 
import numpy as np
#不同种类不同颜色的线
x=np.linspace(0,10,100) 
plt.plot(x,x+0,'-g')	#实线  绿色
plt.plot(x,x+1,'--c')	#虚线 浅蓝色
plt.plot(x,x+2,'-.k')	#点划线 黑色
plt.plot(x,x+3,'-r')	#实线  红色
plt.plot(x,x+4,'o')	#点   默认是蓝色
plt.plot(x,x+5,'x')	#叉叉  默认是蓝色
plt.plot(x,x+6,'d')	#砖石  红色
plt.show()

在这里插入图片描述

【示例 11】添加图例

#不同种类不同颜色的线并添加图例
x=np.linspace(0,10,100)
plt.plot(x,x+0,'-g',label='-g')	#实线  绿色
plt.plot(x,x+1,'--c',label='--c')	#虚线 浅蓝色
plt.plot(x,x+2,'-.k',label='-.k')	#点划线 黑色
plt.plot(x,x+3,'-r',label='-r')	#实线  红色
plt.plot(x,x+4,'o',label='o')	#点   默认是蓝色
plt.plot(x,x+5,'x',label='x')	#叉叉  默认是蓝色
plt.plot(x,x+6,'dr',label='dr')	#砖石  红色
#添加图例右下角 lower right	左上角 upper left  边框  透明度  阴影  边框宽度
plt.legend(loc='lower right',fancybox=True,framealpha=1,shadow=True,borderpad=1) 
plt.show()

在这里插入图片描述

4 绘制柱状图

使用 bar 函数可以绘制柱状图。柱状图需要水平的x 坐标值,以及每一个 x 坐标值对应的 y 坐标值,从而形成柱状的图。柱状图主要用来纵向对比和横向对比的。例如,根据年份对销售收据进行纵向对比,x 坐标值就表示年份,y 坐标值表示销售数据。
【示例 12】使用 bar()绘制柱状图,并设置柱的宽度

import matplotlib.pyplot as plt 
import numpy as np 
x=[1980,1985,1990,1995]
x_labels=['1980 年','1985 年','1990 年','1995 年']
y=[1000,3000,4000,5000]
plt.bar(x,y,width=3)
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.xticks(x,x_labels) 
plt.xlabel('年份') 
plt.ylabel('销量')
plt.title('根据年份销量对比图')
plt.show()

在这里插入图片描述
需要注意的是 bar 函数的宽度并不是像素宽度。bar 函数会根据二维坐标系的尺寸,以及 x 坐标值的多少,自动确定每一个柱的宽度,而 width 指定的宽度就是这个标准柱宽度的倍数。该参数值可以是浮点数,如 0.5,表示柱的宽度是标准宽度的 0.5 倍。

【示例 13】使用 bar()和 barh()函数绘制柱状图

import matplotlib.pyplot as plt 
import numpy as np 
np.random.seed(0) 
x=np.arange(5) 
y=np.random.randint(-5,5,5) 
print(x,y)
# 将画布分隔成一行两列
plt.subplot(1,2,1) 
#在第一列中画图
v_bar=plt.bar(x,y)
#在第一列的画布中 0 位置画一条蓝线
plt.axhline(0,color='blue',linewidth=2) 
plt.subplot(1,2,2)
#barh 将 y 和 x 轴对换 竖着方向为 x 轴
h_bar=plt.barh(x,y,color='red')
#在第二列的画布中 0 位置处画蓝色的线
plt.axvline(0,color='red',linewidth=2) 
plt.show()

在这里插入图片描述
【示例 14】对柱状图的部分柱状设置颜色

import matplotlib.pyplot as plt 
import numpy as np 
np.random.seed(0) 
x=np.arange(5) 
y=np.random.randint(-5,5,5)
v_bar=plt.bar(x,y,color='lightblue')
for bar,height in zip(v_bar,y):
    if height<0:
        bar.set(edgecolor='darkred',color='lightgreen',linewidth=3)
plt.show()

在这里插入图片描述

【示例 15】使用 bar()绘制三天中三部电影的票房变化

import matplotlib.pyplot as plt 
import numpy as np
#三天中三部电影的票房变化
real_names=['千与千寻','玩具总动员 4','黑衣人:全球追缉']
real_num1=[5453,7548,6543] 
real_num2=[1840,4013,3421] 
real_num3=[1080,1673,2342]
#生成 x	第 1 天   第 2 天   第 3 天
x=np.arange(len(real_names))
x_label=['第{}天'.format(i+1) for i in range(len(real_names))]
#绘制柱状图#设置柱的宽度
width=0.3
plt.bar(x,real_num1,color='g',width=width,label=real_names[0])
plt.bar([i+width for i in x],real_num2,color='b',width=width,label=real_names[1]) 
plt.bar([i+2*width for i in x],real_num3,color='r',width=width,label=real_names[2]) 
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
#修改 x 坐标
plt.xticks([i+width for i in x],x_label)
#添加图例plt.legend() #添加标题
plt.title('3 天的票房数')
plt.show()

在这里插入图片描述

5 绘制饼状图

pie 函数可以绘制饼状图,饼图主要是用来呈现比例的。只要传入比例数据即可。

【示例 16】绘制饼状图

#导入模块
import matplotlib.pyplot as plt 
import numpy as np
#准备男、女的人数及比例
man=71351
woman=68187 
man_perc=man/(woman+man) 
woman_perc=woman/(woman+man) #添加名称
labels=['男','女'] #添加颜色
colors=['blue','red'] #绘制饼状图  pie
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
# labels  名称 colors:颜色,explode=分裂  autopct 显示百分比
paches,texts,autotexts=plt.pie([man_perc,woman_perc],labels=labels,colors=colors,explode=(0,0.05),autopct='%0.1f%%')

#设置饼状图中的字体颜色
for text in autotexts:
	text.set_color('white')
#设置字体大小
for text in texts+autotexts:
	text.set_fontsize(20)
plt.show()

在这里插入图片描述

6 绘制直方图

直方图与柱状图的分格类似,都是由若干个柱组成,但直方图和柱状图的含义却有很大的差异。直方图
是用来观察分布状态的,而柱状图是用来看每一个 X 坐标对应的 Y 的值的。也就是说,直方图关注的是分布,并不关心具体的某个值,而柱状图关心的是具体的某个值。使用 hist函数绘制直方图。

【示例 17】绘制直方图

import numpy as np
import matplotlib.pyplot as plt
#频次直方图,均匀分布
#正太分布
x=np.random.randn(1000) 
#画正太分布图
# plt.hist(x)
plt.hist(x,bins=100) #装箱的操作,将 10 个柱装到一起及修改柱的宽度
plt.show()

在这里插入图片描述
【示例 18】同一画布绘制三个直方图

import numpy as np
import matplotlib.pyplot as plt
#几个直方图画到一个画布中,第一个参数期望  第二个均值
x1=np.random.normal(0,0.8,1000) 
x2=np.random.normal(-2,1,1000) 
x3=np.random.normal(3,2,1000)
#参数分别是 bins:装箱,alpha:透明度
kwargs=dict(bins=100,alpha=0.4) 
plt.hist(x1,**kwargs)
plt.hist(x2,**kwargs) 
plt.hist(x3,**kwargs) 
plt.show()

在这里插入图片描述

7 绘制等高线图

【 示例 19 】使用matplotlib 绘制等高线图

#导入模块
import matplotlib.pyplot as plt 
import numpy as np
x=np.linspace(-10,10,100)
y=np.linspace(-10,10,100)
#计算 x 和 y 的相交点 a
X,Y=np.meshgrid(x,y)
# 计算 Z 的坐标
Z=np.sqrt(X**2+Y**2) 
plt.contourf(X,Y,Z) 
plt.contour(X,Y,Z)
# 颜色越深表示值越小,中间的黑色表示 z=0.
plt.show()

在这里插入图片描述

8 绘制三维图

使用 pyplot 包和 Matplotlib 绘制三维图。
【示例 20】使用 Matplotlib 绘制三维图

import matplotlib.pyplot as plt
#导入 3D 包
from mpl_toolkits.mplot3d import Axes3D
#创建 X、Y、Z 坐标
X=[1,1,2,2] 
Y=[3,4,4,3] 
Z=[1,100,1,1]
fig = plt.figure()
#  创建了一个 Axes3D 的子图放到 figure 画布里面
ax = Axes3D(fig) 
ax.plot_trisurf(X, Y, Z)
plt.show()

在这里插入图片描述


总结

以上就是我对数据可视化模块 Matplotlib知识点的详细介绍。
本文是我学习Python基础的学习笔记,主要供自己以后温故知新,在此梳理一遍也算是二次学习。如对您有所帮助,不甚荣幸。若所言有误,十分欢迎指正。如有侵权,请联系作者删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WiFi连接满格信号但是不能上网?

WiFi已经成为人们日常生活中离不开的东西了&#xff0c;不论是手机还是笔记本电脑。但是有时候会遇到WiFi连接满格信号但是无法上网的情况&#xff0c;这是怎么回事呢&#xff1f;下面就和小编一起来看看吧。 WiFi满信号但是无法上网可能是这几个原因&#xff1a; 1、路由器网络…

使用 Docker 快速搭建 Rust 的 Jupyter Notebook

在 Jupyter notebook 上面运行 Python 程序非常&#xff0c;实际上 Jupyter 也支持其他的内核。 我们可以使用 docker 运行一个已经安装好 Rust Conda Jupyter Notebook 的的容器。 如下&#xff1a; docker run --name jupyter-rust -d -p 8899:8899 -v pwd:/opt/noteboo…

JavaScript作用域(作用域概述、变量的作用域、作用域链)、JavaScript预解析(特殊案例)

目录 JavaScript作用域 作用域概述 变量的作用域 作用域链 JavaScript预解析 特殊案例 JavaScript作用域 作用域概述 通常来说&#xff0c;一段程序代码中所用到的名字并不总是有效和可用的&#xff0c;而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的…

【C语言经典例题】——程序员必须会的经典基础例题(三)

关于C语言的一些基础经典题目放在专栏&#xff1a;[C语言刷题] 小菜坤日常上传gitee代码&#xff1a;https://gitee.com/qi-dunyan ❤❤❤ 个人简介&#xff1a;双一流非科班的一名小白&#xff0c;期待与各位大佬一起努力&#xff01; 推荐网站&#xff1a;cplusplus.com 目录…

LeNet-5学习笔记

LeNet-5 网络结构 输入→卷积&#xff08;C1&#xff09;→池化&#xff08;S2&#xff09;→卷积&#xff08;C3&#xff09;→池化&#xff08;S4&#xff09;→全连接(F5)→全连接&#xff08;F6&#xff09;→输出&#xff08;Output&#xff09; 卷积神经网络的构成 输…

力扣(LeetCode)18. 四数之和(C++)

双指针 快排使 numsnumsnums 正序。 设置四个指针 iii 指向 numsnumsnums 第一个数&#xff0c;jjj 指向 numsnumsnums 第二个数&#xff0c;从前往后枚举 nums[i]nums[i]nums[i] 和 nums[j]nums[j]nums[j] &#xff0c; lll 从 nums[j1]nums[j1]nums[j1] 往后&#xff0c;指…

AI写作文案的技巧:Wordhero AI写作SOP

文案引用自AI Content Hacker Tips 7步成文&#xff1a;2000单词SEO文案写作 | Wordhero AI Editor大更新心态&#xff1a;用AI写作的正确态度 人工智能 (AI) 的兴起导致写作世界发生了一些有趣的变化。许多人现在正在使用人工智能工具来帮助他们写作。一些专家认为&#xff0…

向毕业妥协系列之深度学习笔记(一)浅层神经网络

目录 一.神经网络杂记 二.计算图&#xff08;反向传播求导的几个实例&#xff09; 1.普通式子反向传播求导 2.逻辑回归中的梯度下降 3.m个样本的梯度下降 三.向量化 四.python广播 五.激活函数 六.随机初始化 深度学习系列的文章也可以结合下面的笔记来看&#xff1a;…

java计算机毕业设计装修设计管理系统设计与实现(附源码、数据库)

java计算机毕业设计装修设计管理系统设计与实现&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xf…

【论文阅读】时序动作检测系列论文精读(2020年)

文章目录1. DBG: Fast Learning of Temporal Action Proposal via Dense Boundary Generator论文目的——拟解决问题、贡献——创新实现流程详细方法2. PBR-Net: Progressive Boundary Refinement Network for Temporal Action Detection论文目的——拟解决问题贡献——创新实现…

08.初级指针

一、指针 指针理解的2个要点&#xff1a; 1. 指针是内存中一个最小单元的编号&#xff0c;也就是地址 2. 平时口语中说的指针&#xff0c;通常指的是指针变量&#xff0c;是用来存放内存地址的变量 总结&#xff1a;指针就是地址&#xff0c;口语中说的指针通常指的是指针变…

VLSI 半定制设计方法 与 全定制设计方法【VLSI】

VLSI 半定制设计方法 与 全定制设计方法【VLSI】VLSI 半定制设计方法1. standard cell 设计方法Standard Cell library设计方法与步骤特点2. 门阵列(gate array)设计方法gate array特点与FPGA的区别PLA3. 门海设计方法(sea-of-gates styles)全定制&#xff1a;无约束设计方法&a…

希望计算机专业同学都知道这些老师

C语言教程——翁凯老师、赫斌 翁恺老师是土生土长的浙大码农&#xff0c;从本科到博士都毕业于浙大计算机系&#xff0c;后来留校教书&#xff0c;一教就是20多年。 翁恺老师的c语言课程非常好&#xff0c;讲解特别有趣&#xff0c;很适合初学者学习。 郝斌老师的思路是以初学…

【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram

一、活动图 1、简述 活动图和流程图很相似&#xff0c;但是流程图不属于UML图的一种。 类图是一种静态图&#xff0c;属于结构建模&#xff1b;活动图是一个动态图&#xff0c;属于行为建模。 2、元素 2.1 开始、结束、判读、活动、合并 流程图的元素很简单&#xff1a;圆…

[附源码]java毕业设计社区新冠疫情防控网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

WebSocket 和 Socket 的区别

WebSocket 和 Socket 的区别就像Java和JavaScript&#xff0c;并没有什么太大的关系&#xff0c;但又不能说完全没关系。可以这么说&#xff1a; 1.命名方面&#xff0c;Socket是一个深入人心的概念&#xff0c;WebSocket借用了这一概念&#xff1b;2.使用方面&#xff0c;完全…

java项目-第148期ssm社区疫情防控管理信息系统-ssm毕业设计_计算机毕业设计

java项目-第148期ssm社区疫情防控管理信息系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm社区疫情防控管理信息系统》 该项目分为2个角色&#xff0c;管理员、用户。 用户可以浏览前台的疫情物资&#xff0c;进行申请领取。申请后可以在后台…

Windows Server 2019 - 辅助DNS

配置辅助DNS实现主DNS的备用 两台虚拟机;都安装了DNS服务器 一个作为主服务器,一个作为备用服务器 主服务器的配置: 固定IP DNS管理器 安装成功后打开DNS管理器 在正向查找区域新建区域

尝试搞懂 MySQL(一)

一、MySQL 基础架构 先上个 MySQL 逻辑架构图 可以看出&#xff0c;整个架构分为两层&#xff1a;server 层 和 存储引擎层。其中&#xff1a; server 层&#xff1a;连接器、查询缓存、分析器、优化器、执行器等&#xff1b;存储引擎层&#xff1a;插件式&#xff0c;支持 In…

与排序相关的STL模板

今天,深度学习了排序的我决定大展身手,将另我突发八十年脑血栓的STL排序全部列举出来. 本博客除了已在文章中说明的函数外,其他默认头文件为<algorithm>. qsort 在c标准库中,此函数被(收藏)于<cstdlib> qsort 与 bsearch 的比较函数 qsort 函数有四个参数&…