一、第1关:手动创建子图
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,根据输入数据绘制一个一行两列的折线图子图。子图一设置输入数据为x轴,输入数据的平方为y轴;设置颜色为红色;linestyle为–;线的宽度为1;透明的为0.3。子图二设置输入数据为x轴,输入数据的自然对数为y轴,具体可视化要求如下:
图形的figsize为(12, 12);
图形保存到Task1/img/T1.png。
测试说明
平台会对你编写的代码进行测试:
预期输出:你的答案与正确答案一致
提示:
#输入数据为x
plt.plot(x,x**2)
plt.plot(x,np.log(x))
开始你的任务吧,祝你成功!
示例代码如下:
import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt
def student(x):
'''
根据输入数据绘制不同的两个子图
:param x: 输入数据,类型为array
:return: None
'''
# ********* Begin *********#
plt.figure(figsize=(12,12))
plt.subplot(1, 2, 1)
plt.plot(x,x**2,'--r',linewidth=1,alpha=0.3)
plt.subplot(1, 2, 2)
plt.plot(x,np.log(x))
plt.savefig("Task1/img/T1.png")
plt.show()
# ********* End *********#
二、第2关:网格子图
编程要求
在右侧编辑器Begin-End处补充代码,绘制不同一个两行四列的网格子图,并设置图形高度与宽度为0.4,具体可视化要求如下:
图形的figsize为(10, 10);
图形保存到Task2/img/T1.png。
测试说明
平台会对你编写的代码进行测试:
预期输出:你的答案与正确答案一致。
示例代码如下:
import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt
def student():
'''
绘制不同一个两行四列的网格子图,并设置图形高度与宽度为0.4
:param: None
:return: None
'''
# ********* Begin *********#
fig=plt.figure(figsize=(10,10))
fig.subplots_adjust(hspace=0.4, wspace=0.4)
for i in range(1, 9):
ax = fig.add_subplot(2, 4, i)
plt.savefig("Task2/img/T1.png")
# ********* End *********#
三、第3关:更复杂的排列方式
编程要求
在右侧编辑器Begin-End处补充代码,绘制一个2行4列的不规则子图宽高间隔分别为0.4、0.3。第0行设置2个子图,第一个子图占3,第二个子图占1。第二行相反,具体可视化要求如下:
图形的figsize为(10, 10);
图形保存到Task3/img/T1.png。
测试说明
平台会对你编写的代码进行测试:
预期输出:你的答案与正确答案一致。
示例代码如下:
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
def student():
'''
绘制一个2行4列的不规则子图宽高间隔分别为0.4、0.3。
第0行设置2个子图,第一个子图占3,第二个子图占1。第二行相反
:param: None
:return: None
'''
# ********* Begin *********#
plt.figure(figsize=(10,10))
grid = plt.GridSpec(2, 4, wspace=0.4, hspace=0.3)
plt.subplot(grid[0, :3])
plt.subplot(grid[0, 3:])
plt.subplot(grid[1, 0])
plt.subplot(grid[1, 1:])
plt.savefig("Task3/img/T1.png")
# ********* End *********#