首页 > 解决方案 > 将模拟/迭代可视化为箱线图python中的置信区间?

问题描述

我有一个数据,其中包含基于模拟迭代生成的值(例如 100),并且我试图将 100 次迭代中均值/中位数、第一和第三四分位数的变化可视化为箱线图中的阴影置信区间。我很难在箱线图中找到模拟/迭代的示例工作表示,并且想知道是否有人有一些方向。感谢您的建议。下图是我试图实现的示例输出示例。

import random
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import itertools




def generate_dataframe():
    # Create a pandas dataframe...

    _type = ['A', 'B', 'C', 'D'] *2500
    _shares = [random.randint(0,100) for _ in range(10000)]
    lst = range(1,101)    
    _iterations = list(itertools.chain.from_iterable(itertools.repeat(x, 100) for x in lst))
    return pd.DataFrame(
        {
         'Type': _type,
         'shares': _shares,
         'iteration': _iterations
        })



df = generate_dataframe()
#df.boxplot(column = 'shares', by=['Type', 'iteration'])
df.boxplot(column = 'shares', by='Type')

在此处输入图像描述

标签: python-3.xstatisticsdata-visualizationboxplot

解决方案


看来你们很亲近了。您只需要plt.show()在代码末尾添加即可

import random
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import itertools

def generate_dataframe():
    # Create a pandas dataframe...

    _type = ['A', 'B', 'C', 'D'] *2500
    _shares = [random.randint(0,100) for _ in range(10000)]
    lst = range(1,101)    
    _iterations = list(itertools.chain.from_iterable(itertools.repeat(x, 100) 
for x in lst))
    return pd.DataFrame(
        {
         'Type': _type,
         'shares': _shares,
         'iteration': _iterations
        })

df = generate_dataframe()
df.boxplot(column = 'shares', by='Type')
plt.show()

推荐阅读