• 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()

    三、----图

  • 相关阅读:
    Python中Tkinter模块的Canvas控件绘制jpg图片到指定区域
    [MICROSAR Adaptive] --- 开发环境准备
    上位机模块之halcon绘制ROI与获取ROI,在hsmartwindow实现
    腾讯云入侵
    RabbitMQ课件(尚)
    数学建模(二):优化
    C#非托管泄漏中HEAP_ENTRY的Size对不上是怎么回事?
    排序 (爱思创算法四)(期中测试)(答案记录)
    java版工程管理系统Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码
    一般PCB基本设计流程说明
  • 原文地址:https://blog.csdn.net/BaoTTing/article/details/126293032