Matplotlab可视化学习笔记(二):如何绘制柱状图

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 使用Matplotlib库在Python中绘制柱状图的教程,包括基本的柱状图绘制和多条柱状图的绘制方法。

1.安装matplotlib

matplotlib是一个非常实用的画柱状图的tool,通过pip install matplotlib直接安装即可

2.具体代码

import matplotlib.pyplot as plt
import inspect
yolov4_time,yolo_time,ssdface_time, libface_time=0.1,0.5,0.3,0.2
waste_times = (yolov4_time,yolo_time,ssdface_time, libface_time)

labels = []
def retrieve_name(var):
    callers_local_vars = inspect.currentframe().f_back.f_locals.items()
    return [var_name for var_name, var_val in callers_local_vars if var_val is var]

for data in waste_times:
    labels.append(retrieve_name(data)[0].replace('_time', ''))

plt.rcParams['font.family'] = 'SimHei'  # 设置中文解决matplotlib中文乱码问题
x = list(range(len(waste_times)))
plt.bar(x, waste_times, width=0.5, color='red', label='耗时比较', tick_label=labels)
for a, b in zip(x, waste_times):
    plt.text(a, b, '%.1f' % b, ha='center', va='bottom', fontsize=10)  # 添加数据标签

plt.xlabel("模型")
plt.ylabel("时间")

plt.legend()
plt.show()

运行结果
在这里插入图片描述

3.绘制多条柱状图

代码:

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体 SimHei为黑体
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负

Log_015 = np.array([0.039, 0.048, 0.951])
Log_043 = np.array([0.012, 0.014, 0.997])
Les_015 = np.array([0.031, 0.045, 0.963])
Les_043 = np.array([0.028, 0.031, 0.983])

name_list = ['MAE', 'RMSE', 'R2']
x = list(range(len(name_list)))  #横坐标的名
width = 0.2  #直方图的柱宽
colors = ['b','g'] #直方图的颜色
plt.figure(figsize=(8,6)) #
plt.ylim([0,1])  #纵坐标的范围,横坐标的话改成xlim
plt.grid(zorder=0,alpha=0.4)  #图层在最底下,网格的透明度
# plt.ylabel("Accuracy(%)")  #纵轴标签
plt.xlabel("不同评价指标")  #横轴标签
plt.bar(x,Log_015,width=width,label='Log_015',tick_label = name_list,fc='y',zorder=10,edgecolor='black')
#x表示横坐标,multi_unrevoke是纵坐标的值,width是柱宽,label是图例代表这个柱表示什么,tick_label是横坐标对应的标签,fc是颜色,zorder设置的比网格大,代表柱状图在网格之上不会被网格遮盖,edgecolor表示的柱状图边长的颜色,设置为黑色描个边
for i in range(len(x)):
    x[i] = x[i]+width+0.05   #这里设置的是第二个柱对应的横坐标,因为这里想让两个柱状图之间有点空隙,就让横坐标右移了一些
plt.bar(x,Log_043,width=width,label="Log_043",tick_label = name_list,fc='r',zorder=10,edgecolor='black')

for i in range(len(x)):
    x[i] = x[i]+width+0.05   #这里设置的是第三个柱对应的横坐标,因为这里想让两个柱状图之间有点空隙,就让横坐标右移了一些
plt.bar(x,Les_015,width=width,label="Les_015",tick_label = name_list,fc='b',zorder=10,edgecolor='black')

for i in range(len(x)):
    x[i] = x[i]+width+0.05   #这里设置的是第三个柱对应的横坐标,因为这里想让两个柱状图之间有点空隙,就让横坐标右移了一些
plt.bar(x,Les_043,width=width,label="Les_043",tick_label = name_list,fc='g',zorder=10,edgecolor='black')

xx = [1,2,3]
plt.xticks([index -0.6 for index in xx], name_list, rotation='horizontal') #这里是因为x轴的标签不太居中,所以在这里通过index设置一下看能不能居中,rotation是标签的方向,也可以设置成垂直之类的
# plt.xticks([index -0.875 for index in xx], name_list, rotation='horizontal') #这里是因为x轴的标签不太居中,所以在这里通过index设置一下看能不能居中,rotation是标签的方向,也可以设置成垂直之类的
plt.legend()
# plt.title("Accuracy of Different Datasets without Revoking Requests",fontsize=14)
plt.show()

结果图:
在这里插入图片描述

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
1月前
|
数据可视化 Python
Matplotlab可视化学习笔记(一):如何绘制折线图
这篇博客介绍了如何使用Matplotlib库在Python中绘制折线图,包括常用颜色和线型、绘制多条折线图的方法、设置双y轴的技巧,以及如何保存和显示图表。
27 0
|
6月前
|
数据可视化 定位技术 Python
数据可视化——绘制带有时间线的柱状图
数据可视化——绘制带有时间线的柱状图
|
6月前
|
NoSQL 数据库 Python
PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)
PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)
90 1
|
6月前
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程(下)
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程
428 0
|
6月前
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程(上)
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程
531 0
|
数据可视化 数据处理
R绘图案例|基于分面的折线图绘制
R绘图案例|基于分面的折线图绘制
287 0
|
数据可视化 Python
可视化库Matplotlib-柱形图与盒图
可视化库Matplotlib-柱形图与盒图
可视化库Matplotlib-柱形图与盒图
|
定位技术
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(二)
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形
176 0
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(二)
|
数据可视化 数据挖掘 定位技术
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(一)
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形
346 0
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(一)
|
SQL 数据可视化 算法
数据可视化—绘制简单的折线图
在使用matplotlib绘制简单的折线图之前首先需要安装matplotlib,直接在pycharm终端pip install matplotlib即可
258 0
数据可视化—绘制简单的折线图