File size: 1,186 Bytes
bd39f54
 
 
 
10c7c36
bd39f54
 
10c7c36
bd39f54
 
10c7c36
bd39f54
 
 
 
 
 
 
 
 
 
 
 
10c7c36
 
bd39f54
10c7c36
bd39f54
10c7c36
bd39f54
10c7c36
bd39f54
 
10c7c36
 
 
 
 
 
 
 
bd39f54
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
31
32
33
34
35
36
37
38
39
40
41
42
43
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

from static.config import Config


def draw_heat_map(x_data, col_list, paint_object, will_rotate=False):
    plt.rcParams.update({'figure.autolayout': True})

    plt.figure(figsize=(10, 8), dpi=300)

    if isinstance(x_data, np.ndarray):
        np_data = np.around(x_data.astype("float64"), 2)
        pd_data = pd.DataFrame(x_data)
    elif isinstance(x_data, pd.DataFrame):
        np_data = np.around(x_data.to_numpy().astype("float64"), 2)
        pd_data = x_data

    for i in range(np_data.shape[0]):
        for j in range(np_data.shape[1]):
            plt.text(j, i, np_data[i, j], ha="center", va="center", color="w")

    if will_rotate:
        plt.xticks(np.arange(len(col_list)), col_list, rotation=-90)
    else:
        plt.xticks(np.arange(len(col_list)), col_list)

    plt.yticks(np.arange(len(col_list)), col_list)
    plt.imshow(np_data)
    plt.colorbar(True)
    plt.tight_layout()

    plt.title(paint_object.get_name())

    plt.xlabel(paint_object.get_x_cur_label())
    plt.ylabel(paint_object.get_y_cur_label())

    paint_object.set_color_cur_num(0)

    return plt, paint_object