当前位置: 首页 > news >正文

视频讲解:优化柱状图

你好,我是郭震

AI数据可视化 第三集:美化柱状图,完整视频如下所示:

美化后效果前后对比,前:

af6b89a31fd964ac7c73f1d3f4308c2b.png

后:f49a7d141a60a6a7a4accb5052bed542.png

附完整案例源码:

util.py文件

import platformdef get_os():os_name = platform.system()if os_name == 'Windows':return "Windows"elif os_name == 'Darwin':return "macOS"else:return "Unknown OS"

优化后的柱状图,完整源码:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties# 根据操作系统设置字体
from util import get_ossystem_type = get_os()
if system_type == 'Windows':font = FontProperties(fname="C:\\Windows\\Fonts\\msyh.ttc", size=14)  # 注意路径分隔符的转义
elif system_type == 'macOS':font = FontProperties(fname="/System/Library/Fonts/PingFang.ttc", size=14)# 咖啡店及其销售额数据
coffee_shops = ['咖啡店A', '咖啡店B', '咖啡店C', '咖啡店D', '咖啡店E']
sales = [1200, 1500, 1800, 1600, 2000]# 自定义颜色列表
colors = ['#307EC7', '#AA4643', '#89A54E', '#71588F', '#4198AF']plt.figure(figsize=(10, 6))# 设置图表背景为科技黑
plt.gca().set_facecolor('#2B2B2B')
plt.gcf().set_facecolor('#2B2B2B')bars = plt.bar(coffee_shops, sales, color=colors, edgecolor='#EEEEEE')  # 设置柱子边框为亮色# 在柱子顶部添加数据标签
for bar in bars:yval = bar.get_height()plt.text(bar.get_x() + bar.get_width()/2, yval + 50, yval, ha='center', va='bottom', color='#FFFFFF', fontproperties=font)  # 数据标签颜色改为白色# 设置网格线样式
plt.grid(color='#555555', linestyle='--', linewidth=0.5, axis='y', zorder=0, alpha=0.7)# 设置标签和标题颜色为亮色
plt.xticks(ticks=range(len(coffee_shops)), labels=coffee_shops, fontproperties=font, color='#FFFFFF')
plt.xlabel('咖啡店', fontproperties=font, color='#FFFFFF')
plt.ylabel('销售额(美元)', fontproperties=font, color='#FFFFFF')
plt.title('某小镇咖啡店一周销售额对比', fontproperties=font, color='#FFFFFF')
plt.yticks(fontsize=14, color='#FFFFFF')# 设置图例,调整图例的背景和文字颜色
legend = plt.legend(bars, coffee_shops, prop=font)
frame = legend.get_frame()
frame.set_color('#2B2B2B')  # 图例背景色
frame.set_edgecolor('#EEEEEE')  # 图例边框色
plt.setp(legend.get_texts(), color='#FFFFFF')  # 图例文字颜色plt.tight_layout()
plt.show()
http://www.lryc.cn/news/300528.html

相关文章:

  • OpenAI宣布ChatGPT新增记忆功能;谷歌AI助理Gemini应用登陆多地区
  • Solidworks:平面草图练习
  • React18原理: 渲染与更新时的重点关注事项
  • 嵌入式I2C 信号线为何加上拉电阻(图文并茂)
  • Vite 5.0 正式发布
  • 嵌入式STM32 单片机 GPIO 的工作原理详解
  • 系统调用的概念
  • 【无标题】Matlab 之axes函数——创建笛卡尔坐标区
  • 2.12:C语言测试题
  • 【Linux】yum软件包管理器
  • 「优选算法刷题」:寻找旋转排序数组中的最小值
  • MySQL 基础入门指南:从安装到基本操作
  • 嵌入式Qt Qt Creator安装与工程介绍
  • Windows 系统盘(C盘)爆红如何清理、如何增加C盘空间
  • 【JavaEE Spring】Spring 原理
  • 【Crypto | CTF】RSA打法
  • 红衣大叔讲AI:从OpenAI发布首个视频大模型Sora,谈2024年视觉大模型的十大趋势
  • java远程连接Linux执行命令的三种方式
  • JavaScript- let var const区别
  • 指针的经典笔试题
  • 书生浦语大模型实战营-课程笔记(1)
  • 磁盘database数据恢复: ddrescue,dd和Android 设备的数据拷贝
  • SpringMVC-入门
  • 需要学习的知识点清单
  • 杂谈--spconv导出中onnx的扩展阅读
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第二天-arm ads下的start.S分析(物联技术666)
  • STL之list容器的介绍与模拟实现+适配器
  • Leetcode With Golang 二叉树 part1
  • tcp 中使用的定时器
  • 黑马Java——IO流