Python Matplotlib绘图笔记草稿 未完成

Posted 海轰Pro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Matplotlib绘图笔记草稿 未完成相关的知识,希望对你有一定的参考价值。

1 pyplot.figure( )

语法

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

参数

  • num:图像编号或名称,数字为编号 ,字符串为名称
  • figsize:指定figure的宽和高,单位为英寸;
  • dpi参数指定绘图对象的分辨率,即每英寸多少个像素,默认值为80 (1英寸等于2.5cm,A4纸是 21*30cm的纸张 )
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框/表示是否绘制窗口的图框

测试

figsize

默认时

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.plot(x,y)
plt.show()


设置为figsize=(4,6)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(figsize=(4,6))
plt.plot(x,y)
plt.show()


设置为figsize=(8,6)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(figsize=(8,6))
plt.plot(x,y)
plt.show()


设置为figsize=(12,6)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(figsize=(12,6))
plt.plot(x,y)
plt.show()


设置为figsize=(8,3)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(figsize=(8,3))
plt.plot(x,y)
plt.show()


设置为figsize=(8,9)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(figsize=(8,9))
plt.plot(x,y)
plt.show()

facecolor

默认状态:

将背景色设置为红色

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(facecolor="red")
plt.plot(x,y)
plt.show()


将背景色设置为#00cec9

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(facecolor="#00cec9")
plt.plot(x,y)
plt.show()

edgecolor

如果只是单纯的设置edgecolor 会发现并没有起作用

这是因为默认状态下linewidth=0

所以只需要设置一下linewidth,使其不为0 ,就可以使edgecolor生效

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(linewidth=5.0,edgecolor="red")
plt.plot(x,y)
plt.show()

frameon

这里需要先设置linewidth=5.0,edgecolor="red" 便于观察

不然默认情况下,边框不好观察出来

frameon默认为True

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(linewidth=5.0,edgecolor="red",frameon=True)
plt.plot(x,y)
plt.show()


设置为False时,边框不显示

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)

plt.figure(linewidth=5.0,edgecolor="red",frameon=False)
plt.plot(x,y)
plt.show()

2 pyplot.subplot( )

说明

subplot(121) 表示整个区域分为一行,两列,一共可以容纳2张子图,此子图位于第一个位置

前面两个数字表示分为几行几列,后一个数字表示第几个位置。
排列顺序:从左到右,从上到下

subplot(122) 表示此子图位于第二个位置

举例:subplot(122) 位于下图中蓝色位置


subplot(223) 位于下图中蓝色位置


Demo代码

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.figure(figsize=(12,6))

# 子图1
plt.subplot(1,2,1)
plt.plot(x,y)

# 子图2
plt.subplot(1,2,2)
plt.plot(x,z)

plt.show()

设置所有子图的大标题

pyplot.suptitle() 用于设置整个区域的标题(多个子图的情况下)

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.figure(figsize=(12,6))

plt.suptitle("全局标题")  # 全局标题

# 子图1
plt.subplot(1,2,1)
plt.plot(x,y)

# 子图2
plt.subplot(1,2,2)
plt.plot(x,z)

plt.show()

分别设置每个子图的标题

ax = plt.subplot(122)
ax.set_title("子图2的标题")

Demo代码

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.figure(figsize=(12,6))

plt.suptitle("全局标题")  # 全局标题

# 子图1
plt.subplot(1,2,1)
ax = plt.subplot(121)
ax.set_title("子图1的标题")
plt.plot(x,y)

# 子图2
plt.subplot(1,2,2)
ax = plt.subplot(122)
ax.set_title("子图2的标题")
plt.plot(x,z)

plt.show()

注: 还可以这样写 ax = plt.subplot(221+i)

3 pyplot.legend( )

作用

为图像加图例
首先需要在plt.plot( )中的参数label=’’“设置图例的名称

Demo代码

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.plot(x,y,label="sin(x)")# 图例名称有:sin(x)
plt.plot(x,z,label="cos(x)")# 图例名称有:cos(x)
plt.legend()# 添加图例

plt.show()

设置图例位置

图例位置默是系统自动选择最佳位置,也就是参数loc='best'

使用参数loc进行设置图例的具体位置,一般可以设置为:

  • upper left
  • upper center
  • upper right
  • center left
  • center
  • center right
  • lower left
  • lower center
  • lower right

也可以设置为loc=(x,y) 其中x、y分别表示占x轴、y轴的比例,都是以(0,0)为坐标原点(个人理解哈)

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.plot(x,y,label="sin(x)")
plt.plot(x,z,label="cos(x)")
plt.legend(loc=(0.5,0.5),facecolor='yellow') # 图例位于距x轴50%(相对于x
轴总长度)、距y轴50%, 背景色为yellow

plt.show()

设置图例边框

frameon=False 去掉图例边框 (True为显示,默认为True)

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.plot(x,y,label="sin(x)")
plt.plot(x,z,label="cos(x)")
plt.legend(loc='best',frameon=False) #去掉图例边框

plt.show()

设置图例边框颜色

edgecolor='red'边框设置为红色

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.plot(x,y,label="sin(x)")
plt.plot(x,z,label="cos(x)")
plt.legend(loc='best',edgecolor='red') # 边框设置为红色

plt.show()

设置图例背景颜色

facecolor='yellow'设置图例背景颜色

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.plot(x,y,label="sin(x)")
plt.plot(x,z,label="cos(x)")
plt.legend(loc='best',facecolor='yellow') #设置图例背景颜色,若无边框,参数无效

plt.show()

设置图例标题

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# 配置中文(这里依据自己的实际情况而定)
font = {
    "family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)

x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)

plt.plot(x,y,label="sin(x)")
plt.plot(x,z,label="cos(x)")
plt.legend(title="图例的标题") # 设置图例标题

plt.show()

以上是关于Python Matplotlib绘图笔记草稿 未完成的主要内容,如果未能解决你的问题,请参考以下文章

Python matplotlib绘图学习笔记

matplotlib学习笔记

《利用python进行数据分析》读书笔记--第八章 绘图和可视化

Python 和 Matplotlib:在 Jupyter Notebook 中制作交互式 3D 绘图

matplotlib学习笔记

使用 %matplotlib 笔记本时修复 Jupyter 笔记本中的绘图