woaizhuzhu959 2023-07-10 14:58 采纳率: 100%
浏览 69
已结题

如何可视化四维数据?

想要统计企业业务人员的花费。假设如下:
有6名业务人员。
有10项花费领域(电话费,住宿费等)
每人每天在上面10个不同的领域花费100元,有可能一个领域花费100也有可能每个领域花费10元,都是不定的。
用可视化图表展示一年的上述数据,如何展示才清晰美观。

  • 写回答

6条回答 默认 最新

  • 书某人.py 2023-07-10 21:18
    关注

    在展示一年的企业业务人员花费数据时,考虑到每天有10个不同的花费领域,以及6名业务人员,我们可以使用一个多维条形图(3D条形图)来可视化四维数据。

    下面是使用Python中的Matplotlib库实现该可视化的示例代码:

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    # 生成随机数据
    np.random.seed(1)
    num_persons = 6
    num_expenses = 10
    num_days = 365
    
    data = np.random.randint(1, 101, size=(num_persons, num_expenses, num_days))
    
    # 计算每个人在每个领域的总花费
    total_expenses = np.sum(data, axis=2)
    
    # 创建画布和子图
    fig = plt.figure(figsize=(12, 8))
    ax = fig.add_subplot(111, projection='3d')
    
    # 生成坐标轴数据
    xpos, ypos = np.meshgrid(np.arange(num_persons), np.arange(num_expenses))
    xpos = xpos.flatten()
    ypos = ypos.flatten()
    zpos = np.zeros_like(xpos)
    
    # 生成条形图高度数据
    dx = dy = 0.8
    dz = total_expenses.flatten()
    
    # 设置条形图颜色
    colors = dz / float(np.max(dz))
    
    # 绘制3D条形图
    ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color=plt.cm.viridis(colors))
    
    # 设置坐标轴标签
    ax.set_xlabel('Person')
    ax.set_ylabel('Expense Category')
    ax.set_zlabel('Total Expense')
    
    # 设置刻度标签
    ax.set_xticks(np.arange(num_persons) + dx/2)
    ax.set_yticks(np.arange(num_expenses) + dy/2)
    ax.set_xticklabels(range(num_persons))
    ax.set_yticklabels(range(num_expenses))
    
    # 添加颜色条
    cbar = plt.colorbar(plt.cm.ScalarMappable(cmap='viridis'))
    cbar.set_label('Normalized Total Expense')
    
    # 设置图表标题
    plt.title('Annual Expense by Person and Category')
    
    # 显示图表
    plt.show()
    

    img

    运行以上代码,将会显示一个三维条形图,其中x轴表示业务人员,y轴表示花费领域,z轴表示总花费。条形的高度表示总花费的大小,颜色则表示花费的相对大小(使用viridis颜色映射)。你可以通过旋转和缩放图表来查看数据的不同方面。

    请注意,由于数据是随机生成的,你每次运行代码时都会得到不同的结果。确保你根据你的实际数据调整代码以适应你的情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 7月19日
  • 已采纳回答 7月11日
  • 赞助了问题酬金15元 7月10日
  • 创建了问题 7月10日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100