白鹿娘子 2023-10-05 03:43 采纳率: 33.3%
浏览 12

雷达图如何呈现不同的透明度

用Jupiter制作一个雷达图展示两名同学的成绩,如何在只调用一次plt.fill的情况下设置不同的颜色和透明度?

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-05 08:02
    关注

    引自强大而免费的微信小程序:皆我百晓生。


    要在一个雷达图中设置不同的颜色和透明度,您可以使用matplotlib中的alpha属性。以下是一个示例代码,展示了如何在只调用一次plt.fill的情况下设置不同的透明度:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 定义两位同学的成绩数据
    categories = ['Math', 'History', 'English', 'Physics', 'Chemistry']
    student1_scores = [80, 85, 90, 70, 75]
    student2_scores = [90, 75, 85, 80, 70]
    
    # 设置颜色和透明度
    colors = ['red', 'blue', 'green', 'yellow', 'orange']
    alphas = [0.8, 0.4, 0.2, 1.0, 0.6]
    
    # 创建雷达图
    fig = plt.figure(figsize=(6, 6))
    ax = fig.add_subplot(111, polar=True)
    
    # 设置刻度标签
    angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
    angles += angles[:1]
    ax.set_xticks(angles[:-1])
    ax.set_xticklabels(categories)
    
    # 设置极轴范围
    ax.set_ylim(0, 100)
    
    # 绘制雷达图
    ax.plot(angles, student1_scores + [student1_scores[0]], 'o-', color='black', linewidth=2, label='Student 1')
    ax.fill(angles, student1_scores + [student1_scores[0]], alpha=alphas[0], color=colors[0])
    
    ax.plot(angles, student2_scores + [student2_scores[0]], 'o-', color='black', linewidth=2, label='Student 2')
    ax.fill(angles, student2_scores + [student2_scores[0]], alpha=alphas[1], color=colors[1])
    
    # 添加图例
    ax.legend(loc='upper right')
    
    # 显示雷达图
    plt.show()
    

    这段代码会生成一个雷达图,其中包含两名学生的成绩数据。通过设置alphas列表来指定每个区域的透明度,然后在调用plt.fill时传入相应的透明度即可实现不同的透明度效果。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月5日

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆