如何在饼状图中同时显示比例和数量

img

运行结果如下图:

img


如何在我上面的代码上修改才能在饼状图中同时显示比例和数量

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7569290
  • 这篇博客也不错, 你可以看下线稿图视频制作补充(调整视频亮度、对比度;删除无用文件)
  • 除此之外, 这篇博客: 【线性代数】机器学习·算法必备 线性代数总结中的 1.2.3 向量在不同基底上表示为不同坐标 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

            一个指定的向量可以在多组不同的基底上进行坐标表示,在不同基底的表示下,坐标自然也是不同的。

    例如,向量x在基底(e_x,e_y)下的表示为:

    x=\left[\begin{array}{cc}4\\5\\ \end{array}\right],      e_x=\left[\begin{array}{cc}1\\0\\ \end{array}\right],e_y=\left[\begin{array}{cc}1\\0\\ \end{array}\right]

            向量x在基底(e_x,e_y)上表示的坐标为(4,5).

    对于一个新基底(e^{'}_{x},e^{'}_{y})

    x=\left[\begin{array}{cc}4\\5\\ \end{array}\right], e^{'}_x=\left[\begin{array}{cc}1\\1\\ \end{array}\right],e^{'}_y=\left[\begin{array}{cc}-1\\1\\ \end{array}\right]

             首先是将基向量单位化(就是将向量的方向不变,模长转化为1),从向量的的完整写法

    x=x_ie^{'}_x+y_je^{'}_y,其中(x_i,y_j)为向量的坐标,(e^{'}_x,e^{'}_y)为基向量。将基向量单位化,只要将向量的各个分量除以它的模长即可,新基底向量的模长为\sqrt2,则

    e^{'}_x=\left[\begin{array}{cc}\frac{1}{\sqrt2}\\\frac{1}{\sqrt2}\\ \end{array}\right],e^{'}_y=\left[\begin{array}{cc}-\frac{1}{\sqrt2}\\\frac{1}{\sqrt2}\\ \end{array}\right]

            这样就使基向量的模长单位1,叫作将基向量单位化

            再分别计算向量与基向量的内积(Inner Product)

    x^{'}=xe^{'}_x+xe^{'}_y=\left[\begin{array}{cc}4\\5\\ \end{array}\right]\left[\begin{array}{cc}\frac{1}{\sqrt2}\\\frac{1}{\sqrt2}\\ \end{array}\right]+\left[\begin{array}{cc}4\\5\\ \end{array}\right]\left[\begin{array}{cc}-\frac{1}{\sqrt2}\\\frac{1}{\sqrt2}\\ \end{array}\right]=\frac{9\sqrt2}{2}e^{'}_x+\frac{\sqrt2}{2}e^{'}_y

            在该基底下,坐标就被表示为: \left[\begin{array}{cc}\frac{9\sqrt2}{2}\\\frac{\sqrt2}{2}\\\end{array}\right],如图1.2.3所示,表述利用不同基底对同一坐标进行表示的情况。

  • 您还可以看一下 2017CCTC大会老师的【微服务专场】基于微服务的现代应用实践课程中的 基于微服务的现代应用实践小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    Hello ChatGPT,

    我想在Python中生成一个饼状图,并在饼状图中显示每一块的数量和比例值,但是我的代码只能显示比例值。请问应该如何修改代码?

    首先,需要确认你使用的是哪个Python库来生成饼状图。一般来说,可以使用matplotlib库中的pie函数生成,也可以使用plotly库中的pie图表生成器。

    修改代码的方式也会有所不同,以下是两种方法:

    1. 使用matplotlib库,修改代码如下:
    import matplotlib.pyplot as plt
    
    # 数据
    labels = ['A', 'B', 'C', 'D']
    sizes = [15, 30, 45, 10]
    
    # 生成饼状图并设置参数
    fig1, ax1 = plt.subplots()
    ax1.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
    
    # 添加每一块的数量
    for i, label in enumerate(labels):
        ax1.text(0, -i*0.1, label + ': ' + str(sizes[i]), transform=ax1.transAxes)
    
    # 图像显示
    plt.show()
    
    1. 使用plotly库,修改代码如下:
    import plotly.graph_objects as go
    
    # 数据
    labels = ['A', 'B', 'C', 'D']
    values = [15, 30, 45, 10]
    
    # 生成饼状图
    fig = go.Figure(data=[go.Pie(labels=labels, values=values)])
    
    # 添加每一块的数量
    for i, label in enumerate(labels):
        fig.add_annotation(
            x=0.5, y=-i*0.1, text=label + ': ' + str(values[i]), showarrow=False)
    
    # 图像显示
    fig.show()
    

    以上两种方法均使用了for循环遍历数据中的每一块,并在饼状图中添加了数量的标注。使用这两种方法生成的图像均可以在Python中显示,也可以保存为图片文件。

    希望这个回答对你有所帮助!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^