Jupyter notebook中进行交互式绘图,需要执行%matplotlib notebook这个命令。 习惯上我们会使用import matplotlib.pyplot as plt来进行导入matplotlib.pyplot模块。
tips(若没有图案出来一定要检查是否执行了%matplotlib notebook这个命令)
1.创建子图及绘图。
以下是使用Python的Matplotlib图形库创建一个简单的子图的示例代码:
import matplotlib.pyplot as plt
# 创建一个包含2个子图的画布
fig, axes = plt.subplots(1, 2)
# 在第一个子图中绘制一条直线
axes[0].plot([1, 2, 3, 4], [1, 4, 9, 16])
# 在第二个子图中绘制一个散点图
axes[1].scatter([1, 2, 3, 4], [1, 4, 9, 16])
# 显示图形
plt.show()
这段代码将创建一个包含两个子图的画布,并在第一个子图中绘制一条直线,第二个子图中绘制一个散点图。
2.创建子图调整子图周围的间距。
要创建子图并调整子图周围的间距,可以使用matplotlib库中的subplots
函数,并设置subplots_adjust
函数来调整子图周围的间距。
首先,导入所需的库和模块:
import matplotlib.pyplot as plt
然后,使用subplots
函数创建子图,并通过subplots_adjust
函数调整子图周围的间距。以下是一个示例:
# 创建子图
fig, axes = plt.subplots(nrows=2, ncols=2)
# 调整子图周围的间距
plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.4, hspace=0.3)
# 添加子图内容
axes[0, 0].plot([1, 2, 3], [1, 2, 3])
axes[0, 1].scatter([1, 2, 3], [1, 2, 3])
axes[1, 0].bar([1, 2, 3], [1, 2, 3])
axes[1, 1].pie([1, 2, 3])
# 显示子图
plt.show()
在上面的示例中,subplots(nrows=2, ncols=2)
创建了一个2x2的子图。然后,subplots_adjust
函数定义了左边距(left)、右边距(right)、底边距(bottom)、顶边距(top)、水平间距(wspace)和垂直间距(hspace)的值,来调整子图周围的间距。
最后,通过plot
、scatter
、bar
和pie
等函数在每个子图中添加内容。最后,使用plt.show()
显示子图。
3.包含子图绘制的基础语法。
绘制子图的基础语法是使用plt.subplots()
函数创建一个包含多个子图的图表对象。该函数可以指定子图的行数和列数,然后返回一个图表对象和一个包含子图对象的数组。
下面是绘制包含子图的基础语法:
import matplotlib.pyplot as plt
# 创建包含多个子图的图表对象
fig, axes = plt.subplots(nrows, ncols)
# 绘制子图
axes[row_index, col_index].plot(x, y)
其中,nrows
是子图的行数,ncols
是子图的列数,row_index
和col_index
分别是子图在网格中的行索引和列索引,x
和y
是用于绘制子图的数据。
可以通过修改nrows
和ncols
的值来指定所需的子图布局。然后,可以使用axes[row_index, col_index]
来选择要绘制的子图,并使用常用的绘图函数(如plot()
、scatter()
、bar()
等)来绘制图形。
下面是一个绘制包含子图的简单示例:
import matplotlib.pyplot as plt
import numpy as np
# 创建包含2行2列的子图布局
fig, axes = plt.subplots(nrows=2, ncols=2)
# 绘制子图1
x1 = np.linspace(0, 10, 100)
y1 = np.sin(x1)
axes[0, 0].plot(x1, y1)
axes[0, 0].set_title('Subplot 1')
# 绘制子图2
x2 = np.linspace(0, 5, 50)
y2 = np.cos(x2)
axes[0, 1].plot(x2, y2)
axes[0, 1].set_title('Subplot 2')
# 绘制子图3
x3 = np.linspace(-5, 5, 50)
y3 = x3**2
axes[1, 0].plot(x3, y3)
axes[1, 0].set_title('Subplot 3')
# 绘制子图4
x4 = np.random.normal(0, 1, 100)
y4 = np.random.normal(0, 1, 100)
axes[1, 1].scatter(x4, y4)
axes[1, 1].set_title('Subplot 4')
# 调整子图之间的间距
plt.tight_layout()
# 显示图表
plt.show()
在这个示例中,我们创建了一个2行2列的子图布局,并分别绘制了4个子图。每个子图使用不同的数据和标题,并使用set_title()
方法设置子图的标题。最后,使用plt.tight_layout()
方法调整子图之间的间距,然后调用plt.show()
方法显示图表。
4.rc参数设置示例。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
np.random.seed(719)
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.legend(loc = 'best')