3D绘制雷达图

using UnityEngine;
using UnityEngine.UI;

public class Radar : MonoBehaviour
{
    public LineRenderer line;
    public float[] arr; 
    public float r;

    void Start()
    {
        VertexHelper vh = new VertexHelper();
        var num = arr.Length;
        var ang = (2 * Mathf.PI) / num;
        line.positionCount = num;//描线数量
        line.widthMultiplier = 0.3f;//描线粗细
        vh.AddVert(Vector3.zero, Color.white, new Vector2(0.5f, 0.5f));

        for (int i = 0; i < num; i++)
        {
            var x = Mathf.Sin(i * ang) * arr[i];
            var y = Mathf.Cos(i * ang) * arr[i];
            var uvx = (x + r) / (2 * r);
            var uvy = (y + r) / (2 * r);
            //添加顶点
            vh.AddVert(new Vector3(x, y, 0), Color.white, new Vector2(uvx, uvy));

            //连线绘制
            if (i == 0)
            {
                vh.AddTriangle(0, num, 1);
            }
            else
            {
                vh.AddTriangle(0, i, i + 1);
            }
            //修改描边数据
            line.SetPosition(i, new Vector3(x, y, 0));
        }

        //添加到绘制
        Mesh mesh = new Mesh();
        vh.FillMesh(mesh);
        GetComponent<MeshFilter>().mesh = mesh;
    }
}

以上绘制方式为3D绘制雷达图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jupyter Notebook是一个交互式的笔记本环境,常用于数据分析和科学计算。在Python中,我们可以使用`matplotlib`库中的`pyplot`模块结合`mpl_toolkits.mplot3d`模块来创建雷达。首先,你需要确保已经安装了这些库,如果没有,可以通过`pip install matplotlib numpy`来安装。 以下是一个简单的步骤来导入数据并绘制雷达: 1. 导入必要的库: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D ``` 2. 创建数据(这里以简单的二维数据为例,你可以根据实际需要替换): ```python # 假设你有一个包含多个类别和每个类别分数的二维数组 data = np.array([[0.5, 0.6, 0.7, 0.8, 0.9], [0.3, 0.4, 0.5, 0.6, 0.7]]) ``` 3. 初始化雷达: ```python fig = plt.figure() ax = fig.add_subplot(111, projection='polar') ``` 4. 创建雷达: ```python labels = ['A', 'B', 'C', 'D', 'E'] # 类别名称 ax.set_yticklabels(labels) angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False) + (np.pi / 2) # 将0-2π的范围调整为0到360度 ax.plot(angles, data, color='blue', label='Category 1') # 绘制第一条线 ax.plot(angles, data, color='red', label='Category 2') # 绘制第二条线 ``` 5. 添加轴标签和标题,以及例: ```python ax.fill(angles, data, 'b', alpha=0.25) # 隐藏内部填充 ax.fill(angles, data, 'r', alpha=0.25) ax.set_thetagrids(angles * 180/np.pi, labels, fontweight='bold') # 设置角度标签 ax.set_rlabel_position(0) # 移动radar刻度标签到雷达中心 ax.grid(True) ax.legend(loc='upper right') plt.title('Radar Chart Example') ``` 6. 显示表: ```python plt.show() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值