实验:绘制南丁格尔玫瑰图
  本实验有一定难度,有人说matplotlib绘图和matlab大同小异,我看除了一些函数名相同之外,其他的像参数和使用方法很不一样.另外我不知道是不是在matlab中画玫瑰图直接一个"肉丝"函数就成了,为什么matplotlib里面没有~~
  无论如何还是感谢本次实验,虽然费了点时间但是我对函数画图有了一定深度的了解和掌握,草草在python之matplotlib库重要绘图函数简介里面记录了一下,因为内容太多没有一一写成博文,但是附加了一些别人博客的链接,还是很有帮助的.

文章目录

  • 一、实验目的
  • 二、实验内容
  • 三、实验环境
  • 四、实验步骤
  • 五、实验代码及测试
    • 1.源代码
    • 2.运行结果
    • 3.excel数据表

一、实验目的

  了解玫瑰图的前世今生;了解matplotlib标准库中的pyplot模块;了解在极坐标系中绘制柱状图。

二、实验内容

  南丁格尔玫瑰图(Nightingale rose diagram)又名鸡冠花图(Coxcomb Chart)或极坐标区域图(Polar area diagram)。它将柱图转化为更美观饼图形式,是极坐标化的柱图。不同于饼图用角度表现数值或占比,南丁格尔玫瑰图使用扇形的半径表示数据的大小,各扇形的角度则保持一致。
  自行选择一组数据,画出基础玫瑰图。

三、实验环境

  Python 3.8

四、实验步骤

  1. 查阅文档,了解南丁格尔玫瑰图的原理。
  2. 选择一组数据,编写程序画出玫瑰图。

五、实验代码及测试

1.源代码

import matplotlib.pyplot as plt
import numpy as np
import xlrd'''按列读取excel文件并存入两个列表
'''
data=xlrd.open_workbook(r'亚洲国家疫情数据.xlsx')
table  = data.sheets()[0]   #通过索引顺序获取工作表
cols_n = table.ncols
country_list = table.col_values(0,start_rowx=1) # start_rowx默认为0,设置为1去掉列名
data_list = table.col_values(1,start_rowx=1)
# print(data_list)'''计算角度
'''
n = table.nrows-1           #去掉列名
theta = np.linspace(0,2*np.pi,len(data_list))    # 360度等分成n份'''作图
'''
# 设置画布
fig = plt.figure(figsize=(12,10))
# 极坐标
ax = plt.subplot(111,projection = 'polar')
# 顺时针并设置N方向为0度
ax.set_theta_direction(-1)
ax.set_theta_zero_location('N') # 在极坐标中画柱形图
ax.bar(theta,data_list,width = 0.33,color = np.random.random((len(data_list),3)),# labels=str(country_list), align = 'edge')
''' 显示一些简单的中文图例
'''
plt.rcParams['font.sans-serif']=['SimHei']  # 黑体
ax.set_title('亚洲国家现存确诊',fontdict={'fontsize':20})
for angle,data in zip(theta,data_list):ax.text(angle+0.03,data+100,str(data)) plt.axis('off')plt.savefig('Nightingale_rose.png')
plt.show()

2.运行结果

3.excel数据表


4.说明
  四位数过长,而对应的图所占比例很小,所以在图上的标注有些重叠.
  实验让画出基础玫瑰图,并没有图例和标签的要求,而且给玫瑰图设置标签的步骤比较繁琐,所以没有涉及到.

python+matplotlib绘制南丁格尔玫瑰图相关推荐

  1. 使用Matplotlib绘制南丁格尔玫瑰图

    前言 在前文中,我们介绍了使用pyecharts绘制南丁格尔玫瑰图,本章我们再学习一下使用matplotlib绘制南丁格尔玫瑰图,了解在极坐标系中绘制柱状图.并对比一下两种不同的绘制方法,如何实现? ...

  2. 【Python数据分析——使用matplotlib制作南丁格尔玫瑰图】

    目录 一.介绍 二.相关库 三.数据准备 四.pyecahrts代码实现 五.matplotlib代码实现 一.介绍 玫瑰图是弗罗伦斯·南丁格尔所发明的.又名为极坐标面积图,是一种圆形的直方图. 南丁 ...

  3. python实验之绘制南丁格尔玫瑰图

    一.实验目的 了解玫瑰图的前世今生:了解 matplotlib 标准库中的 pyplot 模块:了解在极坐标 系中绘制柱状图. 二.实验基本原理及步骤(或方案设计及理论计算) 实验步骤: 查阅文档,了 ...

  4. 【Python绘图】pyecharts绘制南丁格尔玫瑰图

    from pyecharts.charts import Pie from pyecharts import options as opts import random# 随机颜色生成 def ran ...

  5. 使用excel中的雷达图绘制南丁格尔玫瑰图

    效果展示: 注: 数据文件链接: https://pan.baidu.com/s/1iF_nQ6hhL0MlO8P4qPDuAA 密码: 1snj 数据展示: 绘制思路: 1.计算出确诊人数的平方根( ...

  6. Python+Matplotlib绘制饼状图模拟南丁格尔玫瑰图

    开学第一课:一定不要这样问老师Python问题 董付国老师Python系列教材推荐与选用参考 ============= 版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微 ...

  7. 利用Python实现新冠疫情数据可视化(获取疫情历史数据,制作南丁格尔玫瑰图、疫情地图、动态疫情组合图、词云)

    文章目录 前言 1.获取疫情历史数据 2.制作南丁格尔玫瑰图 2.1 全球各国确诊人数玫瑰图 2.2 全国各省市零新增天数玫瑰图 3.制作疫情地图 3.1全国各省市目前确诊总人数疫情地图 3.2全球各 ...

  8. Python数据可视化之南丁格尔玫瑰图(亲测)

    文章目录 1. 什么是南丁格尔玫瑰图 2. 南丁格尔玫瑰图的绘制 1. 什么是南丁格尔玫瑰图 央视新闻用来展示疫情0增长天数的图就是南丁格尔玫瑰图. 南丁格尔玫瑰图(Nightingale rose ...

  9. python画玫瑰图_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画

    前一阵子,我看到央视新闻中,有一张比较好看数据图,如下: 后来才知道这叫"南丁格尔玫瑰图",是南丁格尔护士在克里米亚战争期间提交的一份关于士兵死伤报告时发明的一种图表. 我心想能不 ...

最新文章

  1. pythondjango讲解_Django框架全面讲解
  2. Linux命令大全(文件管理)
  3. ASP.NET 百万级分页查询(Oracle)
  4. k8s部署之使用CFSSL创建证书
  5. GDAL\OGR C#中文路径不支持的问题解决方法
  6. 单片机控制NOKIA5110液晶屏之模块化编程
  7. 秀米svg点击显示另一张图_时隔五年再用秀米,我发现了这个超强玩法
  8. 计算机课堂小游戏活跃气氛,活跃气氛课堂互动小游戏大全
  9. SpringBoot:快速使用Spring
  10. ssm+Vue计算机毕业设计学生网上请假系统(程序+LW文档)
  11. redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式
  12. formal Verification 形式验证 形式验证的最大障碍:误报(false positives)的危险 第9章
  13. 两年卖超2000万支,80%增长来自用户口碑,口腔护理品牌“贝医生”做了什么?
  14. 等待末日, 一家6口在地窖里住9年? 被警方救出后, 前后太诡异了!
  15. 解决cc2015到期后不能再次破解问题,及提供cutterman,Mark Man下载地址
  16. Android ROM定制
  17. 单调区间之239.滑动窗口最大值
  18. 淮北市第四届机器人比赛_淮北市第三实验小学组织学生参加2020年淮北市中小学生机器人竞赛“果力WYAI人工智能挑战赛”...
  19. C/C++实现矩阵/图形90°旋转
  20. Ubuntu与WIndows桌面间切换

热门文章

  1. 2017多校第4场 HDU 6078 Wavel Sequence DP
  2. x / k向上取整转换为向下取整
  3. arcgis中解决点位符号化时重叠冲突
  4. 微信小程序canvas 证件照制作
  5. wind 10 安装node环境
  6. h5新语义化标签(重要)
  7. 数据结构--堆Heap
  8. PCA (主成分分析)详解 (写给初学者)
  9. python vimdiff_vimdiff使用技巧
  10. 急~为啥我指定的的maven依赖版本没有生效?不是最短路径原则吗?