科研绘图(五)玫瑰图

这篇具有很好参考价值的文章主要介绍了科研绘图(五)玫瑰图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

柱状图的高级平替可视化

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

 优点

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;

 同时,为了进一步美化可视化结果我们增加标签和图例、添加数据的百分比或数值标签、改进极坐标网格线等操作,最终可视化结果如下所示科研绘图(五)玫瑰图,科研绘图,信息可视化,大数据,数学建模,数据分析,玫瑰图

科研绘图(五)玫瑰图,科研绘图,信息可视化,大数据,数学建模,数据分析,玫瑰图 文章来源地址https://www.toymoban.com/news/detail-808810.html

到了这里,关于科研绘图(五)玫瑰图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python科研数据可视化

    在过去的20 年中,随着社会产生数据的大量增加,对数据的理解、解释与决策的需求也随之增加。而固定不变是人类本身,所以我们的大脑必须学会理解这些日益增加的数据信息。所谓“一图胜千言”,对于数量、规模与复杂性不断增加的数据,优秀的数据可视化也变得愈加

    2024年02月11日
    浏览(39)
  • GPT-4科研实践:数据可视化、统计分析、编程、机器学习数据挖掘、数据预处理、代码优化、科研方法论

    查看原文GPT4科研实践技术与AI绘图 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。 例如在科研编程、绘图领域 : 1、编程建议和示例代码:  无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。

    2024年02月07日
    浏览(59)
  • 数学建模——数据可视化seaborn

    数学建模——数据可视化seaborn 写作由来: 最近在准备数学建模美赛,在画图表的时候,之前一直用的是matplotlib,但是画出来总感觉不是很好看,而美赛挺注重文章的美观,所以找到了另一个实用的高级的Python包——seaborn。 概括 风格(style) 有5种风格 white,whitegrid,dark,darkgri

    2024年02月13日
    浏览(39)
  • 【数学建模】数据处理与可视化

    两类基本对象 ndarray(N-dimensional Array Object):存储单一数据类型的多维数组 ufunc(Universal Funciton Object):对数组进行处理的通用函数 数组创建 向array函数传入列表/元组 利用arange、linspace、empty等函数生成数组 数组属性 数组元素索引 array数组和list列表的区别:list中的元素可以不

    2024年01月18日
    浏览(42)
  • Python数据可视化之matplotlib绘图教程

    目录 一、快速绘图 1. 折线图 2. 柱状图 3. 饼状图 4. 散点图 5. 图片保存  二、基本设置 1. 图片 2. 坐标轴 3. 刻度 4. 边距 5. 图例 6. 网格 7. 标题 8. 文本 9. 注释文本 10. 主题设置 11. 颜色 12. 线条样式 13. 标记形状 三、绘图进阶 1. 折线图 2. 条形图  3. 散点图 4. 饼状图 5. 多图并

    2024年02月04日
    浏览(44)
  • 7个Pandas绘图函数助力数据可视化

    大家好,在使用Pandas分析数据时,会使用Pandas函数来过滤和转换列,连接多个数据帧中的数据等操作。但是,生成图表将数据在数据帧中可视化 , 通常比仅仅查看数字更有帮助。 Pandas具有几个绘图函数,可以使用它们快速轻松地实现数据可视化,文中将介绍这些函数。 首先

    2024年01月21日
    浏览(53)
  • Python Matplotlib数据可视化绘图之(一)————柱状图

    本文我们主要介绍利用Python中的Matplotlib模块进行几种柱状图的画法,包括整张图片只有一种颜色的不分组柱状图、整张图片有好几种颜色的不分组柱状图、整张图片有好几种颜色的分组柱状图等。 主要利用Python中的Matplotlib模块完成该功能。 表格如下(示例): 语言种类

    2024年02月06日
    浏览(68)
  • Python Matplotlib数据可视化绘图之(二)————箱线图

    本文我们主要介绍利用Python中的Matplotlib模块进行几种箱线图的画法,包括整张图片只有一种颜色的不分组箱线图、整张图片有好几种颜色的不分组箱线图、整张图片有好几种颜色的分组箱线图等。 主要利用Python中的Matplotlib模块完成该功能。 表格如下(示例): 班别 语文成

    2024年02月05日
    浏览(52)
  • 【python绘图(一)】Python数据分析和可视化

    1. 绘制三维曲面图及其投影图 2. 绘制曲面图 3. 绘制曲面投影图 4. 同时绘制曲面图和投影图,用两个图展示 5. 绘制曲面图 6. 同时绘制曲面图及其二维填色图 数据分析包括探索、清理和转换数据以从中提取有用信息。Python有许多库可以使数据分析变得更容易,例如Pandas、Nu

    2024年02月04日
    浏览(45)
  • Python Matplotlib数据可视化绘图之(三)————散点图

    文本 本文我们主要介绍利用Python中的Matplotlib模块进行几种散点图的画法,包括整张图片只有一种颜色的不分组散点图、整张图片有好几种颜色的不分组散点图、整张图片有好几种颜色的分组散点图等。 主要利用Python中的Matplotlib模块完成该功能。 表格如下(示例): 班别

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包