科研绘图(五)玫瑰图

news2024/10/6 14:37:11

柱状图的高级平替可视化

“玫瑰图”,通常也被称为“科克斯图”。它类似于饼图,但不同之处在于每个部分(或“花瓣”)的角度相同,半径根据它表示的值而变化。这种可视化工具对于周期性地显示信息非常有用,比如一年中每月的数据,就像您的图表一样,每个“花瓣”对应一个月份。花瓣的长度代表该月的数值,让观看者能够快速看出哪些月份的值相对较高或较低。这种图表曾被佛罗伦萨·南丁格尔用来说明克里米亚战争期间的死亡原因。

 优点

1. 直观展示时间序列数据:非常适合展示随时间变化的数据,如月度或年度的比较。

2. 突出显示数据模式:因其独特的设计,可以突出显示数据中的模式和趋势。

3. 视觉吸引力:具有高度的视觉吸引力,可以吸引观众的注意力。

4. 展示多个变量:能够在一个图表中同时展示多个变量,有助于比较和对比。

5. 历史意义:作为一种历史悠久的数据可视化方法,它在某些情境中具有教育和传统上的价值。

 缺点

1. 解读困难:对于不熟悉这种图表的观众来说,可能难以理解和解读。

2. 误导风险:由于区域的大小可能会造成误解,尤其是当外圈的变量值较大时,可能会被过分强调。

3. 不适合复杂数据:对于包含许多类别或复杂数据的情况,可能不是最佳选择。

4. 比较困难:如果需要精确比较数据点的大小,这种图表可能不太合适,因为人眼不擅长比较环形区域的面积。

5. 受限的数据量:不适合展示大量的数据点,因为图表会变得拥挤且难以阅读。

比如下图,我随即生成了一组数据集每个月份具有一个数值,如下的柱状图,为了更加直观的展示其结果,就可以绘制玫瑰图如下所示。

import matplotlib.pyplot as plt
import numpy as np

# Generate random data for 12 months
data = np.random.rand(12) * 100

# Define the angle of each sector
theta = np.linspace(0.0, 2 * np.pi, 12, endpoint=False)

# Sort the data from smallest to largest
sorted_data = np.sort(data)

# Create the plot with the sorted data
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})

# Create the bars of the rose chart with sorted data
bars = ax.bar(theta, sorted_data, width=0.5, bottom=0.0, color=plt.cm.viridis(sorted_data / 100))

# Set the labels for each 'petal'
ax.set_xticks(theta)
ax.set_xticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])

# Remove the yticks
ax.set_yticks([])

# Add the data values on top of each bar
for bar, value in zip(bars, sorted_data):
    ax.text(bar.get_x() + bar.get_width()/2, bar.get_height(), f'{value:.1f}',
            ha='center', va='bottom')

# Show the plot
plt.show()

为了进一步美化我们使用了渐变的颜色条,加粗了月份标签,并在每个花瓣上方以加粗字体标注了数据值。此外,还调整了背景颜色,网格线样式,以及去除了极坐标的边框,使整个图表看起来更加清晰和现代。 

 

也可以直接使用SPSSPRO的PRO绘图功能绘制。如下所示 

还为大家准备了matlab绘制代码 

% Random data for 12 months
data = rand(1, 12) * 100;

% Define the angle of each sector
theta = linspace(0, 2 * pi, 13);
theta(end) = []; % To make it 12 elements only

% Sort the data and associated labels
[sorted_data, sortIndex] = sort(data);
sorted_labels = {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'};
sorted_labels = sorted_labels(sortIndex);

% Create a polar plot
figure('Color', 'white');
pax = polaraxes;
hold on;

% Set the colormap
colors = colormap(hot(12));

% Create the bars
bars = polarplot([theta; theta], [zeros(1, numel(sorted_data)); sorted_data], 'LineWidth', 10);
for i = 1:length(bars)
    bars(i).Color = colors(i, :);
end

% Set the labels for each 'petal'
pax.ThetaTick = rad2deg(theta);
pax.ThetaTickLabel = sorted_labels;

% Add the data values on top of each bar
for i = 1:length(sorted_data)
    text(theta(i), sorted_data(i) + max(data)*0.05, sprintf('%.1f', sorted_data(i)), ...
        'HorizontalAlignment', 'center', 'FontWeight', 'bold', 'Color', [0 0 0.5]);
end

% Customize polar grid and frame
pax.GridLineStyle = '--';
pax.GridColor = [0.5, 0.5, 0.5];
pax.GridAlpha = 0.5;

% Hide the polar frame/spine
pax.RAxis.Visible = 'off';

% Add a title
title('Monthly Data Rose Chart', 'FontSize', 16, 'FontWeight', 'bold', 'Color', [0 0 0.5]);

% Show the plot
hold off;

 同时,为了进一步美化可视化结果我们增加标签和图例、添加数据的百分比或数值标签、改进极坐标网格线等操作,最终可视化结果如下所示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1390907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

log4j2漏洞综合利用_CVE-2021-44228_CNVD-2021-95919

1.漏洞利用 1.1.rmi 利用 1、在检测到目标存在 log4j2 漏洞后,确定漏洞参数,尝试接受目标 rmi 请求。 成功接收到请求。 出现 JRMIK 字样即代表可接受 RMI 请求。 2、漏洞利用。 使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar执行命令&#xff0…

SAP 销售订单审批状态(查询/修改)

销售订单审批状态启用后,前端显示界面如下图 销售订单审批状态读取:STATUS_READ 销售订单审批状态修改:I_CHANGE_STATUS 销售订单审批状态读取 代码样例如下: DATA: lv_objnr TYPE vbak-objnr,lv_objnr_t TYPE jsto-objnr,l…

区间预测 | Matlab实现BiLSTM-Adaboost-ABKDE的集成双向长短期记忆网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现BiLSTM-Adaboost-ABKDE的集成双向长短期记忆网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现BiLSTM-Adaboost-ABKDE的集成双向长短期记忆网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 …

soso移动营业大厅(纯后端+MySQL数据库+JDBC)

一、项目需求 中国移动,中国联通,中国电信是国内3大通信运营商,每个运营商都提供了不同的品牌套餐来应对不同的用户群,比如北京移动主要有全球通,神州行,动感地带等3大品牌套餐,每种套餐的内容和费用不同,嗖嗖移动是一个假定的通信运营商,提供了话痨套餐,网虫套餐,超人套餐,各…

ElasticSearch入门篇

目录 一、 ElasticSearch的定位 二、 什么是倒排索引 三、 什么是全文检索 四、 ElasticSearch的数据存储原理 4.1 ElasticSearch与关系型数据库的数据结构对比 4.2 ElasticSearch的倒排索引原理 一、 ElasticSearch的定位 ElasticSearch是一款开源的分布式 搜索和…

【Linux终端工具】Tmux的使用教程,如何正确使用Tmux

文章目录 入门tmux什么是tmux?安装tmux快速启动tmux基本操作入门1. 分离与退出2. 帮助信息3. 新建会话4. 重新接入会话5. 窗格操作 进阶操作1. 会话管理2. 切换窗口3. 窗格间切换 总结 入门tmux 什么是tmux? tmux是一款终端复用器,它允许你…

一、ArcGIS Pro SDK for Microsoft .NET 开发环境配置

ArcGIS Pro二次开发需要的工具: 1.Visual Studio 2.ArcGIS Pro SDK 一、Visual Studio安装 经过查阅资料,ArcGIS Pro3.0版本需要安装Visual Studio2022版,因为只有22版的才会有有ArcGIS Pro3.0以上版对应ArcGIS Pro SDK,因此&…

MySQL核心SQL

一.结构化查询语言 SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别: DDL(Data Definition Languages)语句 数据定义语言,这…

通过Canal实现缓存同步

文章目录 1.数据同步策略2.初始Canal3.安装Canal4.监听Canal 1.数据同步策略 2.初始Canal 3.安装Canal 见文章安装Canal详情 4.监听Canal

【Web】websocket应用的是哪个协议

🍎个人博客:个人主页 🏆个人专栏:Web ⛳️ 功不唐捐,玉汝于成 前言 在当今互联网时代,实时性和即时通讯成为网络应用日益重要的一部分。WebSocket 协议作为一种创新性的通信协议,极大地改善了…

网页设计(八)HTML5基础与CSS3应用

一、当当网企业用户注册页面设计 当当网企业用户注册页面 改版后当当网企业用户注册页面 <!-- prj_8_1.html --> <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>当当网企业用户注册页面设计</title><s…

圈小猫游戏HTML源码

源码介绍 圈小猫游戏html源码&#xff0c;HTMLCSSJS,记事本可以打开修改内容&#xff0c;电脑本地双击index.html即可运行&#xff0c;也可以上传到服务器上面运行&#xff0c;喜欢的同学可以拿去使用 下载地址 蓝奏云&#xff1a;https://wfr.lanzout.com/iFkVc1lb5akj CS…

【MATLAB源码-第113期】基于matlab的孔雀优化算法(POA)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 POA&#xff08;孔雀优化算法&#xff09;是一种基于孔雀羽毛开屏行为启发的优化算法。这种算法模仿孔雀通过展开其色彩斑斓的尾羽来吸引雌性的自然行为。在算法中&#xff0c;每个孔雀代表一个潜在的解决方案&#xff0c;而…

NFS(Network File System 网络文件服务)

一&#xff0c;nfs 简介 1&#xff0c;nfs 性质 NFS&#xff08;Network File System 网络文件服务&#xff09; 文件系统&#xff08;软件&#xff09;文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议 通过使用 NFS 协议&#xff0c;客户机可以像访问本地目录一样…

找不到msvcr100.dll怎么办?msvcr100.dll丢失的解决方法

在面对计算机系统中“msvcr100.dll”文件缺失这一常见问题时&#xff0c;用户可能会遇到应用程序无法正常启动或运行的情况。为了解决这一困扰广大用户的难题&#xff0c;本文将详细介绍并解析找不到“msvcr100.dll”文件的5种有效解决方法。 一、了解一下msvcr100.dll是什么&a…

[论文精读]Few-shot domain-adaptive anomaly detection for cross-site brain images

论文网址&#xff1a;Few-shot domain-adaptive anomaly detection for cross-site brain images | IEEE Journals & Magazine | IEEE Xplore 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有…

怎么修改或移除WordPress后台仪表盘概览底部的版权信息和主题信息?

前面跟大家分享『WordPress怎么把后台左上角的logo和评论图标移除&#xff1f;』和『WordPress后台底部版权信息“感谢使用 WordPress 进行创作”和版本号怎么修改或删除&#xff1f;』&#xff0c;其实在WordPress后台仪表盘的“概览”底部还有一个WordPress版权信息和所使用的…

鸿蒙入门实战-ArkTS开发

声明式UI基本概念 应用界面是由一个个页面组成&#xff0c;ArkTS是由ArkUI框架提供&#xff0c;用于以声明式开发范式开发界面的语言。 声明式UI构建页面的过程&#xff0c;其实是组合组件的过程&#xff0c;声明式UI的思想&#xff0c;主要体现在两个方面&#xff1a; 描述…

Simulink简介

Simulink 是一个模块图环境&#xff0c;用于多域仿真以及基于模型的设计。它支持系统级设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。Simulink 提供图形编辑器、可自定义的模块库以及求解器&#xff0c;能够进行动态系统建模和仿真。Simulink 与 MATLAB 相集成&am…

EChars

1.引入 Apache ECharts <!DOCTYPE html> <html><head><meta charset"utf-8" /><!-- 引入刚刚下载的 ECharts 文件 --><script src"echarts.js"></script></head> </html> 2. <!-- 为 ECharts 准…