• 47、Python绘图


    一、折线图

    1.1、一维折线图

    1. # -*- coding:utf-8 -*-
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. x_axis_data = [1, 2, 3, 4, 5, 6, 7] # x
    5. y_axis_data = [68, 69, 79, 71, 80, 70, 66] # y
    6. if __name__ == '__main__':
    7. # =>添加标签
    8. for x, y in zip(x_axis_data, y_axis_data):
    9. plt.text(x, y + 0.3, '%.00f' % y, ha='center', va='bottom', fontsize=7.5) # y_axis_data1加标签数据
    10. # =>绘图
    11. plt.plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label='acc') # 'bo-'表示蓝色实线,数据点实心原点标注
    12. # =>添加label
    13. plt.legend() # 显示上面的label
    14. plt.xlabel('time') # x_label
    15. plt.ylabel('number') # y_label
    16. # plt.ylim(-1,1)#仅设置y轴坐标范围
    17. plt.show()
    18. # plot中参数的含义分别是横轴值,纵轴值,线的形状('s'方块,'o'实心圆点,'*'五角星 ...,颜色,透明度,线的宽度和标签)

    1.2、多维折线图

    1. # -*- coding:utf-8 -*-
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. # epoch,acc,loss,val_acc,val_loss
    5. x_axis_data = [1, 2, 3, 4, 5, 6, 7]
    6. y_axis_data1 = [68.72, 69.17, 69.26, 69.63, 69.35, 70.3, 66.8]
    7. y_axis_data2 = [71, 73, 52, 66, 74, 82, 71]
    8. y_axis_data3 = [82, 83, 82, 76, 84, 92, 81]
    9. if __name__ == '__main__':
    10. # =>绘图
    11. plt.plot(x_axis_data, y_axis_data1, 'b*--', alpha=0.5, linewidth=1, label='acc')
    12. plt.plot(x_axis_data, y_axis_data2, 'rs--', alpha=0.5, linewidth=1, label='acc')
    13. plt.plot(x_axis_data, y_axis_data3, 'go--', alpha=0.5, linewidth=1, label='acc')
    14. # =>标签
    15. for a, b in zip(x_axis_data, y_axis_data1):
    16. plt.text(a, b, str(b), ha='center', va='bottom', fontsize=8) # ha='center', va='top'
    17. for a, b1 in zip(x_axis_data, y_axis_data2):
    18. plt.text(a, b1, str(b1), ha='center', va='bottom', fontsize=8)
    19. for a, b2 in zip(x_axis_data, y_axis_data3):
    20. plt.text(a, b2, str(b2), ha='center', va='bottom', fontsize=8)
    21. # =>添加label
    22. plt.legend() # 显示上面的label
    23. plt.xlabel('time') # x_label
    24. plt.ylabel('number') # y_label
    25. # plt.ylim(-1,1)#仅设置y轴坐标范围
    26. plt.show()
    27. # plot中参数的含义分别是横轴值,纵轴值,线的形状('s'方块,'o'实心圆点,'*'五角星 ...,颜色,透明度,线的宽度和标签)
    28. # 's': 方块状 'o': 实心圆 '^': 正三角形 'v': 反正三角形 '+': 加好
    29. # '*': 星 号 'x': x号 'p': 五角星 '1': 三脚架标记 '2': 三脚架标记

    二、柱状图

    2.1、一维柱状图

    1. # -*- coding:utf-8 -*-
    2. import matplotlib.pyplot as plt
    3. plt.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体
    4. plt.rcParams["axes.unicode_minus"] = False # 该语句解决图像中的“-”负号的乱码问题
    5. width = 0.4
    6. y = [5.203, 9.232, 23.965, 47.282]
    7. x_labels = ["RTX4000*2", "RTX4000", "GTX1050", "950M"]
    8. x = range(len(y))
    9. if __name__ == '__main__':
    10. # =>绘制柱状图
    11. plt.bar(x=x, height=y, width=width, alpha=0.7, color='red', label="未优化")
    12. # =>横坐标labels
    13. plt.xticks([i for i in x], x_labels)
    14. # =>在每个条形顶部添加数值
    15. for i, j in zip(x, y):
    16. plt.text(i, j + 0.01, "%.3f" % j, ha="center", va="bottom", fontsize=10)
    17. # =>设置label
    18. plt.legend() # 显示上面的labe
    19. plt.xlabel("显卡类型")
    20. plt.ylabel("处理时间(s)")
    21. plt.show()

    2.2、多维柱状图

    1. # -*- coding:utf-8 -*-
    2. import matplotlib.pyplot as plt
    3. plt.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体
    4. plt.rcParams["axes.unicode_minus"] = False # 该语句解决图像中的“-”负号的乱码问题
    5. width = 0.4
    6. y1 = [5.203, 9.232, 23.965, 47.282]
    7. y2 = [3.952, 5.102, 10.673, 17.520]
    8. x_labels = ["RTX4000*2", "RTX4000", "GTX1050", "950M"]
    9. x = range(len(y1))
    10. if __name__ == '__main__':
    11. plt.bar(x=x, height=y1, width=width, alpha=0.7, color='red', label="未优化")
    12. plt.bar([i+width for i in x], height=y2, width=width, alpha=0.7, color='green', label="优化")
    13. plt.xticks([i+width/2 for i in x], x_labels)
    14. # 在每个条形顶部添加数值
    15. for i, j in zip(x, y1):
    16. plt.text(i, j + 0.01, "%.3f" % j, ha="center", va="bottom", fontsize=10)
    17. for i, j in zip([i+width for i in x], y2):
    18. plt.text(i, j + 0.01, "%.3f" % j, ha="center", va="bottom", fontsize=10)
    19. # 设置label
    20. plt.legend()
    21. plt.xlabel("显卡类型")
    22. plt.ylabel("处理时间(s)")
    23. plt.show()

    三、----图

  • 相关阅读:
    Windows10快捷键合集
    android开发获取View坐标位置的几种方式
    JavaWeb基础
    微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(四):消息队列MQ
    5种典型 API 攻击及预防建议
    flask restful项目开发结尾必看!!!
    高中生物神经系统的组成,初中生物神经系统考题
    「Go框架」gin框架是如何处理panic的?
    【定制项目】【M14 监测预警平台】百度地图区域绘制(时间轴)/柱状图/仪表图 - 关键技术 python flask + echarts
    HTML+CSS+JS做一个好看的个人网页—web网页设计作业
  • 原文地址:https://blog.csdn.net/BaoTTing/article/details/126293032