Matplotlib接口和常用图形

第1关 画图接口

1
2
3
4
5
6
7
8
9
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def student(x,y):
    # ********** Begin *********#
    fig = plt.figure(figsize=(10,10))
    plt.savefig("Task1/image1/T2.png")
    plt.show()
    # ********** End **********#

第2关 线形图

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
def student(input_data,input_data1):

    # ********* Begin *********#
    fig = plt.figure(figsize=(10,10))
    plt.plot(input_data,'--g')
    plt.plot(input_data1,':r')
    plt.legend(['L1','L2'])
    plt.savefig("Task2/img/T1.png")
    plt.show()
    # ********* End *********#

第3关 散点图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import numpy as np
def student(x,y,x2,y2,x3,y3,area):
    '''

    根据输入的三组数据绘制三组不同参数的散点图

    :param x,y: 第一组数据,类型为array

    :param x2,y2: 第二组数据,类型为array

    :param x3,y3: 第三组数据,类型为array

    :param area: 标记大小参数的值,类型为array

    :return: None

    '''
    # ********* Begin *********#
    fig = plt.figure(figsize=(10,10))
    plt.scatter(x,y,s = area,alpha=0.5)
    plt.scatter(x2,y2,s = area,c = 'green',alpha = 0.6)
    plt.scatter(x3,y3,s = area,marker='v',alpha = 0.7)
    plt.savefig("Task3/img/T1.png")
    plt.show()

    # ********* End *********#

第4关 直方图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import matplotlib

matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt
def student(data,x,y):

    '''
    根据输入数据将直方图与线形图绘制在同一面板中,并设置直方图为红色,线形图为蓝色
    :param data: 绘制直方图数据,类型为list
    :param x,y: 绘制线形图数据,类型为list

    :return: None
    '''
    # ********* Begin *********#
    plt.figure(figsize=(10,10))
    plt.hist(data,color = 'red')
    plt.plot(x,y,color = 'blue')
    plt.savefig("Task4/img/T1.png")
    plt.show()
    # ********* End *********#

第5关 饼图

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
def student(labels,quants):
    # ********* Begin *********#
    fig = plt.figure(figsize = (6,6))
    explode = [0]*len(quants)
    explode[1] = 0.1
    plt.pie(quants,labels = labels,explode = explode,autopct='%1.1f%%')
    plt.savefig("Task5/img/T1.png")
    plt.show()
    # ********* End *********#

NumPy基础及取值操作

第1关 ndarray对象

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
def print_ndarray(input_data):
    '''
    实例化ndarray对象并打印
    :param input_data: 测试用例,类型为字典类型
    :return: None
    '''
    #********* Begin *********#
    a = np.array(input_data['data'])
    print(a)
    #********* End *********#

第2关 形状操作

1
2
3
4
5
6
7
8
9
10
11
12
import numpy as np
def reshape_ndarray(input_data):
    '''
    将ipnut_data转换成ndarray后将其变形成一位数组并打印
    :param input_data: 测试用例,类型为list
    :return: None
    '''
    #********* Begin *********#
    a = np.array(input_data)
    a.resize(a.size)
    print(a)
    #********* End *********#

第3关 基础操作

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
def get_answer(input_data):
    '''
    将input_data转换成ndarray后统计每一行中最大值的位置并打印
    :param input_data: 测试用例,类型为list
    :return: None
    '''
    #********* Begin *********#
    a = np.array(input_data)
    print(a.argmax(axis = 1))
    #********* End *********#

第4关 随机数生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
def shuffle(input_data):

    '''
    打乱input_data并返回打乱结果
    :param input_data: 测试用例输入,类型为list
    :return: result,类型为list
    '''
    # 保存打乱的结果
    result = []
    #********* Begin *********#
    result = list(np.random.choice((input_data),size = len(input_data),replace = False))
    #********* End *********#
    return result

第5关 索引与切片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import numpy as np
def get_roi(data, x, y, w, h):
    '''
    提取data中左上角顶点坐标为(x, y)宽为w高为h的ROI
    :param data: 二维数组,类型为ndarray
    :param x: ROI左上角顶点的行索引,类型为int
    :param y: ROI左上角顶点的列索引,类型为int
    :param w: ROI的宽,类型为int
    :param h: ROI的高,类型为int
    :return: ROI,类型为ndarray
    '''
    #********* Begin *********#
    test = data[x:x+h+1,y:y+w+1]
    return test
    #********* End *********#