Python自定义实现数据可视化功能

Python自定义实现数据可视化功能
在Python中,无论是画哪种图,当画多张图时,需要一遍一遍的复制黏贴以前的画图流程程序,在这里,我设计一个可以自动绘制散点图的类

# 自动绘图类
class Auto_plot:

    def __init__(self, value, name, unit):
        self.value = value
        self.unit = unit
        self.name = name
        self.sketch()

    # 自动设计横纵坐标刻度及范围
    def sketch(self):
        # 确定画布大小
        fig = plt.figure(figsize=(24, 6))
        # 找到数据里的最小和最大值,设计纵坐标
        min_a = min(self.value)
        max_a = max(self.value)
        # 调整坐标轴范围
        if min_a < 0:
            min_a = min(self.value) + 0.25 * min(self.value)
        else:
            min_a = min(self.value) - 0.25 * min(self.value)
        if max_a < 0:
            max_a = max(self.value) - 0.25 * max(self.value)
        else:
            max_a = max(self.value) + 0.25 * max(self.value)
        # 设计一个与纵坐标维度相同的数组作为横坐标
        # 数据的个数,设计横坐标
        s = len(self.value)
        x = np.arange(0, s, 1)
        # 把x轴的刻度间隔设置为10000,并存在变量里
        x_major_locator = MultipleLocator(10000)
        # y轴的刻度是变化的,设计y轴的刻度变化
        k = (max(self.value) - min(self.value)) / 4.0
        y_major_locator = MultipleLocator(k)
        # ax为两条坐标轴的实例,获得这个子图
        ax = plt.gca()
        # 把x轴的主刻度设置为10000的倍数
        ax.xaxis.set_major_locator(x_major_locator)
        ax.yaxis.set_major_locator(y_major_locator)
        # 设置x轴的刻度范围
        plt.xlim(0, s + 1000)
        plt.ylim(min_a, max_a)
        # 绘制散点图
        # 解决负数显示问题
        matplotlib.rcParams['axes.unicode_minus'] = False
        plt.scatter(x, self.value, s=3, c="blue", alpha=1)
        # 给散点图加横纵坐标标签及标题
        s = inpath[31:52]
        plt.title(s + '/' + self.name + ' and Time')
        plt.xlabel('Time/s')
        plt.ylabel(self.name + '/' + self.unit)
        plt.show()

Auto_plot(TAT, 'TAT', 'deg C')

你可能感兴趣的:(散点图自动绘制)