把各同学的成绩用雷达图展示在同一个绘图区域,并填充不同颜色和透明度

雷达图

导入模块

import numpy as np
import matplotlib.pyplot as plt

设置中文字体

plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

设计表,2*np.pi = 360°

dim_num = 6
radians = np.linspace(0, 2 * np.pi, dim_num, endpoint=False)
# 将0到2pi这个区域用6条线平均分割区域,在后面就在这6条线上画点
radians = np.concatenate((radians, [radians[0]]))
# 让首尾相连

准备数据

# A同学: '数学','英语','线代','爬虫','数据可视化','吃喝玩乐'  --->   41,38,36,62,68,100
score_a = np.array([41,38,36,62,68,100])
score_a = np.concatenate((score_a, [score_a[0]]))

# B同学:'数学','英语','线代','爬虫','数据可视化','吃喝玩乐'  --->   91,88,83,72,78,26
score_b = np.array([91,88,83,72,78,26])
score_b = np.concatenate((score_b, [score_b[0]]))

# C同学:'数学','英语','线代','爬虫','数据可视化','吃喝玩乐'  --->   81,78,85,76,74,36
score_c = np.array([81,78,85,76,74,36])
score_c = np.concatenate((score_c, [score_c[0]]))

绘制多边形(雷达图) 

plt.polar(radians,score_a,
          radians,score_b,
          radians,score_c)

设置维度标签

radar_labels = ['数学','英语','线代','爬虫','数据可视化','吃喝玩乐']
radar_labels = np.concatenate((radar_labels, [radar_labels[0]])) # 拼接一下,构成闭环 (此处可以不拼接,为了统一而已)

设置极坐标的标签

angles = radians * 180/np.pi  # 弧度转角度
plt.thetagrids(angles, labels=radar_labels) # 设置新的刻度标签

填充多边形,设置不同颜色和透明度,alpha(透明度)取值在0~1之间,数值越小越透明

plt.fill(radians,score_a,color='b',alpha=0.1)
plt.fill(radians,score_b,color='g',alpha=0.2)
plt.fill(radians,score_c,color='r',alpha=0.3) 

展示图表

plt.show()

运行结果如下

在R语言中,`radarchart` 函数通常用于绘制基于因子的雷达图,它通常来自`gplots`包。如果你想要调整填充区域的密度,`radarchart`本身并没有直接提供一个参数来控制这个效果。不过,你可以通过结合其他绘图元素来间接达到类似的效果。 如果你想要改变填充区域颜色深浅,可以尝试使用`polygon`函数,它可以设置颜色透明度(alpha值)。例如,你可以创建一个渐变的颜色序列,并将其作为`polygon`函数的`col`参数来应用不同透明度。 ```r library(gplots) # 创建一个渐变颜色序列 gradient_colors <- colorRampPalette(c("lightblue", "darkblue"))(n = 100) # 使用radarchart创建基本雷达图 data <- data.frame(factor_levels = c("Level1", "Level2", "Level3", ...), values = c(v1, v2, v3, ...)) radarchart(data$factors, data$values, sectors = nrow(data), labels = data$factor_levels) # 修改填充区域颜色 filled_polygons <- function(x, y, sectors, ...) { polygon(x = x, y = y, col = gradient_colors[seq_along(y)], border = NA, ...) } apply(sector.index, 1, filled_polygons, alpha = seq(0.5, 1, length.out = nrow(data))) ``` 在这个例子中,`alpha`参数控制了颜色透明度,从0.5(半透明)到1(完全不透明),你可以根据需要调整这个范围。 请注意,这并不是标准的`radarchart`参数,而是一种定制的解决方案。如果你想更精确地控制填充区域的密集程度,可能需要自定义图形或寻找其他更适合的图表类型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值