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

python 山峦图

效果:

代码:

import matplotlib.pyplot as plt
import numpy as npdef mountain_plot(data_dict, colors=None):if colors is None:colors = get_colors_from_map(len(data_dict), "Spectral")x = list(data_dict.keys())# Y轴位置y_positions = [2 * i for i in range(len(x))]# 创建图形fig, axs = plt.subplots(figsize=(8, 12))# 为每个月绘制核密度曲线,并水平错开显示for i, month in enumerate(list(data_dict.keys())):# 核密度估计density, bins = np.histogram(data_dict[month], bins=30, density=True)bins = 0.5 * (bins[1:] + bins[:-1])  # 转换为 bin 的中心# 每个月份的曲线位置偏移axs.fill_between(bins, y_positions[i] + density, y_positions[i], facecolor=colors[i], alpha=0.7)axs.plot(bins, y_positions[i] + density, color=colors[i], lw=1.5)# 设置月份作为Y轴标签axs.set_yticks(y_positions)axs.set_yticklabels(x)# 添加横轴的网格线axs.grid(axis='y', linewidth=1, color='gray', alpha=0.2)# 去掉边框线axs.spines['top'].set_visible(False)axs.spines['bottom'].set_visible(False)axs.spines['right'].set_visible(False)axs.spines['left'].set_visible(False)# 显示图像plt.tight_layout()plt.show()if __name__ == '__main__':# 模拟数据生成函数,基于正态分布def generate_trend_data(size=1000):np.random.seed(0)# 前半段平稳trend = np.linspace(0, 0.3, size // 2)# 后半段波动较大trend = np.concatenate([trend, np.random.normal(0.1, 0.5, size // 2)])return trenddef generate_normal_data(mean, std=1.2, size=1000):np.random.seed(6)  # 固定随机数种子return np.random.normal(mean, std, size)# 月份months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']# 为每个月生成不同的正态分布数据data_dict = {}for i in range(6):data_dict[months[i]] = generate_normal_data(i * 2) / 10for i in range(6, 12):data_dict[months[i]] = generate_normal_data((11 - i) * 2) / 10mountain_plot(data_dict)

http://www.lryc.cn/news/441469.html

相关文章:

  • Open3D:3D数据处理与可视化的强大工具
  • YOLOv8改进系列,YOLOv8的Neck替换成AFPN(CVPR 2023)
  • BitLocker硬盘加密的详细教程分享
  • YOLOv8的GPU环境搭建方法
  • JZ2440下载后设置NAND启动文件系统
  • AI绘画与摄影新纪元:ChatGPT+Midjourney+文心一格 共绘梦幻世界
  • 金手指设计
  • Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用增强版
  • 详解c++菱形继承和多态---下
  • python学习笔记目录
  • 非结构化数据中台架构设计最佳实践
  • 鹏鼎控股社招校招入职SHL综合能力测评:高分攻略及真题题库解析答疑
  • 【测向定位】差频MUSIC算法DOA估计【附MATLAB代码】
  • 智能车镜头组入门(四)元素识别
  • Java键盘输入语句
  • 【读书笔记-《30天自制操作系统》-22】Day23
  • C++学习笔记(33)
  • 智谱清影 -CogVideoX-2b-部署与使用,带你揭秘生成6s视频的极致体验!
  • 探索Java中的设计模式:原则与实例
  • 【Java】关键字-static【主线学习笔记】
  • 数字自然资源领域的实现路径
  • GitLab邮箱发送邮件:如何实现自动化发信?
  • sqli-labs靶场搭建
  • Leetcode Hot 100刷题记录 -Day14(矩阵置0)
  • 每日刷题(算法)
  • 大牛直播SDK核心音视频模块探究
  • gin配置swagger文档
  • 基于ssm的快餐店点餐系统设计与实现
  • 集合框架底层使用了什么数据结构
  • Activiti7《第二式:破剑式》——工作流中的以柔克刚