南丁格尔玫瑰图

1、绘制南丁格尔玫瑰图的步骤:

数据准备工作:准备好角度数值和半径数值。
建立画布,并将直角坐标转化为极坐标。并对极坐标进行一定的设置。
使用bar函数进行绘图。
对图形进行美化处理。

2、上代码

import  numpy as np
import  pandas as pd
import  matplotlib.pyplot as plt
from  matplotlib.pyplot import figure,show,rc
from  matplotlib import cm,colors

plt.rcParams["patch.force_edgecolor"] = True
plt.rcParams['font.sans-serif']='SimHei'  #设置中文显示,以及字体样式

# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False

plt.rc('axes',axisbelow = True)

mydata = pd.DataFrame(dict(day =["Mon","Tue","Wed","Thu","Fir","Sat","Sun"],Price = [50,60,70,20,90,110,30]))

n_row =mydata.shape[0]
angle = np.arange(0,2*np.pi,2*np.pi/n_row)  #准备角度
radius = np.array(mydata.Price)        #准备半径

fig = figure(figsize=(4,4),dpi=90)  #绘制极坐标


ax = fig.add_axes([0.1,0.1,0.8,0.8],polar = True)  #从二维直角坐标系转换成极坐标系
ax.set_theta_offset(np.pi/2-np.pi/n_row)  #设置角度
ax.set_theta_direction(-1)
ax.set_rlabel_position(360-180/n_row)  #设置弧度
plt.bar(angle,radius,color=["#EE82EE","blue","red","green"],edgecolor="k",width=0.90,alpha=0.9)
plt.xticks(angle,labels=mydata.day)    #调用坐标轴标签
plt.ylim(-15,125)  #设置y的取值范围,让中间出现圆圈

# 显示Y轴的数字标签
#plt.yticks([])
plt.yticks(np.arange(0,120,20),verticalalignment="center",horizontalalignment='right')

#设置网格线
plt.grid(which="major",axis='x',linestyle='-',linewidth='0.5',color='gary',alpha=0.5)
plt.grid(which="major",axis='y',linestyle='-',linewidth='0.5',color='gary',alpha=0.5)

# 添加数值
for a,b in zip(angle,radius):
    plt.text(a+0.05,b+20,b,ha='center',va='center',fontsize=10)

#显示
plt.show()

 

3、相关解释

matplotlib.pyplot.grid(b=None, which='major', axis='both',**kwargs )
b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
**kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。
Highcharts是一款流行的JavaScript图表库,它允许创建各种复杂的可视化,包括南丁格尔玫瑰图(也称为雷达图)。南丁格尔玫瑰图是一种用于显示多个变量之间关系的图形,通常用于医学研究、市场分析等场景。在这个图表中,数据点分布在各个维度上,通过折线连接形成扇形区域,每个扇形代表一个变量,颜色深浅可以反映数据大小。 在Highcharts中创建南丁格尔玫瑰图的基本步骤如下: 1. 引入Highcharts库和依赖。 2. 创建一个HTML容器元素来放置图表。 3. 使用Highcharts API初始化图表,设置系列数据、轴和选项,如标题、网格线和颜色映射。 4. 调用`chart.plot()`方法绘制图表。 示例代码可能如下所示: ```javascript Highcharts.chart('container', { chart: { type: 'rose', plotBackgroundColor: null, plotBorderWidth: 0, plotShadow: false }, title: { text: '南丁格尔玫瑰图' }, series: [{ name: '数据集', data: [ [65, 59, 80, 81, 56, 55, 40], // 数据点数组,每个数组元素对应一个维度 ], pointPlacement: -0.5, // 控制数据点的位置 showInLegend: false, // 隐藏系列名称 dataLabels: { enabled: true } // 显示数据值 }], tooltip: { headerFormat: '<span style="font-size:10px">{point.key}</span><table>', pointFormat: '<tr><td style="color:{series.color};padding:0"><b>{point.y}%</b></td>' + '<td style="padding:0"><b>{point.name}</b></td></tr>', footerFormat: '</table>', shared: true, useHTML: true } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕.晨风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值