python如何使用plt画出漂亮的柱状图(条形图) 您所在的位置:网站首页 渐变色条形图 python如何使用plt画出漂亮的柱状图(条形图)

python如何使用plt画出漂亮的柱状图(条形图)

2023-04-14 22:58| 来源: 网络整理| 查看: 265

如何使用plt画出漂亮的柱状图(条形图) 1.配置环境 2.效果图 3.绘图代码 4.代码解释 5.结束语 1.配置环境

使用环境:python3.7 平台:Windows10 工具:matplotlib IDE:PyCharm

2.效果图

优化后的图片:

优化前的图片:

3.绘图代码 # author:Hurricane # date: 2021/11/12 # E-mail:[email protected] from matplotlib import pyplot as plt import random def plot_bar_color(data, x, path="color.png"): # data:条形图数据 # x:x轴坐标 # path:图片保存路径 # 创建颜色序列 colors = [] for _ in range(int(len(data) / 2)): colors.append([_ / int(len(data) / 2), 0.5, 0.5]) colors = colors + colors[::-1] # 创建x轴显示的参数(此功能在与在图像中x轴仅显示能被10整除的刻度,避免刻度过多分不清楚) x_tick = list(map(lambda num: "" if num % 10 != 0 else num, x)) # 创建一个分辨率为3000*1000的空白画布 plt.figure(figsize=(300, 100), dpi=10) # 创建一个字体样式 font2 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 300, } # 设置x轴的说明 plt.xlabel('Classes', font2) # 设置y轴的说明 plt.ylabel('Number of data', font2) # 打开网格线 plt.grid() # 绘制条形图 plt.bar(range(len(data)), data, color=colors, width=0.5) # 显示x轴刻度 plt.xticks(range(len(x_tick)), x_tick, size=200) # 显示y轴刻度 plt.yticks(size=200) # 获取当前图像句柄 fig = plt.gcf() # plt.show() # 存储当前图像 fig.savefig(path) def plot_bar_normal(data, x, path="normal.png"): # data:条形图数据 # x:x轴坐标 # path:图片保存路径 # 创建x轴显示的参数(此功能在与在图像中x轴仅显示能被10整除的刻度,避免刻度过多分不清楚) x_tick = list(map(lambda num: "" if num % 10 != 0 else num, x)) # 创建一个分辨率为3000*1000的空白画布 plt.figure(figsize=(300, 100), dpi=10) # 设置x轴的说明 plt.xlabel('Classes', size=300) # 设置y轴的说明 plt.ylabel('Number of data', size=300) # 打开网格线 plt.grid() # 绘制条形图 plt.bar(range(len(data)), data, width=0.5) # 显示x轴刻度 plt.xticks(range(len(x_tick)), x_tick, size=200) # 显示y轴刻度 plt.yticks(size=200) # 获取当前图像句柄 fig = plt.gcf() # plt.show() # 存储当前图像 fig.savefig(path) if __name__ == '__main__': # 创建需要绘制的数据,本实例中为72个0到100的随机数 data = [random.randint(0, 100) for _ in range(72)] # 创建x轴坐标 x = list(range(0, 360, 5)) # save_path = r"test.png" # 绘制彩色条形图并保存 plot_bar_color(data, x) # 绘制普通条形图并保存 plot_bar_normal(data, x) print("All Done!") 4.代码解释

在第三节给出的代码已经有了详细的注释,本节主要对关键部分进行讲解。 Python绘制柱状图相信大家并不陌生,采用plt.bar命令可很快完成。如果对该命令不了解的同学可以先参考一下此文章 https://blog.csdn.net/HangoverLG/article/details/106063835? 但是可以看到plt.bar绘制出来 的默认条形图颜色单一,本文的主要功能就是给条形图着色 在本文中可以看到,相较于未着色的图,就是在于这行代码,在绘制bar时,添加了颜色序列

plt.bar(range(len(data)), data, color=colors, width=0.5)

那么颜色序列怎么创建呢?

for _ in range(int(len(data) / 2)): colors.append([_ / int(len(data) / 2), 0.5, 0.5]) colors = colors + colors[::-1]

通过上述代码可以轻松实现。本文为了达到颜色从中间分开对称的效果,所以采用创建一遍序列后,再将其反序和原始序列拼接。 如果你只想要产生单向渐变颜色的条形图的话,那么只需要这一行命令即可

colors = [[random.random() for _ in range(3)] for _ in range(len(data))] 5.结束语

如果本文对你有帮助的话还请点赞、收藏一键带走哦,你的支持是我最大的动力!(づ。◕ᴗᴗ◕。)づ



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有