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进行数据分析》读书笔记--第八章 绘图和可视化