欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-19 12:37:28
...

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')
相关标签: 散点图自动绘制