美文网首页
用python matplotlib.pyplot 作图

用python matplotlib.pyplot 作图

作者: 曦宝 | 来源:发表于2020-03-02 16:05 被阅读0次
import matplotlib.pyplot as plt


def plot_data(period, path, purchase_true, purchase_pre, redeem_true, redeem_pre):
    x = []
    for i in range(1, period+1):
        x.append(i)
    plt.plot(x, purchase_true, label="purchase_true")
    plt.plot(x, purchase_pre, label="purchase_pre")
    # 给y轴设置网格线
    plt.grid(axis='y')
    # 设置数字标签
    for a, b in zip(x, purchase_true):
        plt.text(a, b + 0.001, '%.4f' % b, ha='center', va='bottom', fontsize=9)
    for a, b in zip(x, purchase_pre):
        plt.text(a, b + 0.001, '%.4f' % b, ha='center', va='bottom', fontsize=9)
    # 给图片加上图例
    plt.legend()
    # 保存图片
    plt.savefig("../picture/" + path + "/purchase.png")
    plt.show()
    # -------------------------------------------------------一张图---------------------------------------
    plt.plot(x, redeem_true, label="redeem_true")
    plt.plot(x, redeem_pre, label="redeem_pre")
    plt.grid(axis='y')
    for a, b in zip(x, redeem_true):
        plt.text(a, b + 0.001, '%.4f' % b, ha='center', va='bottom', fontsize=9)
    for a, b in zip(x, redeem_pre):
        plt.text(a, b + 0.001, '%.4f' % b, ha='center', va='bottom', fontsize=9)
    plt.legend()
    plt.savefig("../picture/" + path + "/redeem.png")
    plt.show()


if __name__ == '__main__':
    plot_data(period, purchase_true, purchase_pre, redeem_true, redeem_pre)

最近在做天池余额宝转入转出预测的工程。需要一些展示图片比较直观的图片,就稍微研究了一下作图。
有几点要注意一下:
首先,就是为什么要创建一个空的list x,因为这里要展示的是第一天到第三十一天的数据,所以横坐标x是每一天。因此要自己创建一个。
第二,就是给图片上加图例,就是 plt.legend(),不然只有线条,不知道每个线条代表什么
第三,就是保存图片plt.savefig()一定要在显示图片 plt.show()的前面不然会保存一张空的图片。
第四,就是一定要有 plt.show(),不然就是一闪而过。
第五,就是如果要在图片画两条曲线,就要两个plot命令,然后在show,就可以了。
第六,给图片设置网格线, plt.grid(axis='y')因为这里要显示y轴上的数字,因此只设置了y轴的网格线,x轴没有。
第七,设置数字标签。

for a, b in zip(x, purchase_true):
        plt.text(a, b + 0.001, '%.4f' % b, ha='center', va='bottom', fontsize=9)

a, b+0.001表示在每一柱子对应x值、y值上方0.001处标注文字说明。
'%.4f' % b,代表标注的文字,即每个柱子对应的y值。
ha='center', va= 'bottom'代表horizontalalignment(水平对齐)、verticalalignment(垂直对齐)的方式,fontsize则是文字大小。

相关文章

网友评论

      本文标题:用python matplotlib.pyplot 作图

      本文链接:https://www.haomeiwen.com/subject/gpfvkhtx.html