python报错多维索引不支持

img


在运用python的matplotlib进行画图的时候显示如图所示报错,应该如何解决

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7683610
  • 这篇博客你也可以参考下:python matplotlib 画图时坐标轴重叠,显示不全和图片保存时不完整的问题
  • 除此之外, 这篇博客: 用python的Matplotlib库画多序列条形图和堆叠条形图中的 多序列条形图 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 方法一:用多个条形图的函数
    import matplotlib.pyplot as plt
    import numpy as np
    %matplotlib inline
    
    index = np.arange(4)  
    data1 = [1,5,6,3]
    data2 = [1,2,3,5]
    data3 = [4,8,9,4]
    
    a = 0.3  #将一个空间分为3部分,a=0.3,3个占0.9,剩余0.1的空格
    plt.title('multi bar chart')
    
    plt.bar(index,  # 条形图所在下标
            data1, a, color = 'pink', label = 'a')
    plt.bar(index+a, 
            data2, a, color = 'c', label = 'b')
    plt.bar(index+2*a, 
            data3, a, color = 'orange', alpha = 0.5,label = 'c')
    
    plt.legend()
    

    在这里插入图片描述
    同样可以画横向的多序列条形图

    import matplotlib.pyplot as plt
    import numpy as np
    %matplotlib inline
    
    index = np.arange(4)  
    data1 = [1,5,6,3]
    data2 = [1,2,3,5]
    data3 = [4,8,9,4]
    
    a = 0.3  #将一个空间分为3部分,a=0.3,3个占0.9,剩余0.1的空格
    plt.title('multi bar chart')
    
    plt.barh(index,  # 条形图所在下标
            data1, a, color = 'pink', label = 'a',hatch = '/')
    plt.barh(index+a, 
            data2, a, color = 'c', label = 'b')
    plt.barh(index+2*a, 
            data3, a, color = 'orange', alpha = 0.5,label = 'c')
    
    plt.legend()
    

    在这里插入图片描述

    • 方法二:用DataFrame生成多序列条形图
    import pandas as pd
    %pylab inline
    
    colors = ['pink','orange','c']
    df = pd.DataFrame([[4,8,2],[1,5,3],[2,5,4]])
    df.plot(kind = 'bar',color = colors)
    

    在这里插入图片描述
    同样的我们可以画横向的条形图、折线图等

    import pandas as pd
    %pylab inline
    
    colors = ['pink','orange','c']
    df = pd.DataFrame([[4,8,2],[1,5,3],[2,5,4]])
    df.plot(kind = 'barh',color = colors)
    

    在这里插入图片描述

  • 您还可以看一下 AI100讲师老师的Python零基础入门到实战课程中的 数据可视化matplotlib 03小节, 巩固相关知识点