Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Matplotlib框打印-使用for循环打印分组值_Python 3.x_Pandas_Matplotlib - Fatal编程技术网

Python 3.x Matplotlib框打印-使用for循环打印分组值

Python 3.x Matplotlib框打印-使用for循环打印分组值,python-3.x,pandas,matplotlib,Python 3.x,Pandas,Matplotlib,我尝试使用for循环绘制按唯一列值分组的方框图,而不知道该列中唯一值的数量 您可以看到下面的示例代码(没有for循环)和所需的输出 import pandas as pd from numpy import random import matplotlib.pyplot as plt #------------------------------ Preparing the data frame -------------------------------# df = pd.DataFra

我尝试使用for循环绘制按唯一列值分组的方框图,而不知道该列中唯一值的数量

您可以看到下面的示例代码(没有for循环)和所需的输出

import pandas as pd
from numpy import random
import matplotlib.pyplot as plt

#------------------------------ Preparing the data frame -------------------------------#

df = pd.DataFrame(data = random.randn(5,4), index = ['A','B','C','D','E'],
columns = ['W','X','Y','Z'])

df['W'] = ['10/01/2018 12:00:00','10/03/2018 13:00:00',
           '10/03/2018 12:30:00','10/04/2018 12:05:00',
           '10/08/2018 12:00:15']

df['W']=pd.to_datetime(df['W'])

df['Entity'] = ['C201','C201','C201','C202','C202']
print(df)

#-----------------------------------Plotting the data ----------------------------------#

fig, ax = plt.subplots()

data_to_plot = [df['Y'][df['Entity']=='C201'], df['Y'][df['Entity']=='C202']]

# Create the boxplot
bp = ax.boxplot(data_to_plot, showfliers=False)
ax.set_xticklabels(['C201' ,'C202'])      
plt.show()
所需输出:
你能做点像这样的事吗

#-----------------------------------Plotting the data ----------------------------------#

fig, ax = plt.subplots()

data_to_plot = []
tick_labels = []
for entity in df['Entity'].unique():
    data_to_plot.append(df['Y'][df['Entity']==entity])
    tick_labels.append(entity)

# Create the boxplot
bp = ax.boxplot(data_to_plot, showfliers=False)
ax.set_xticklabels(tick_labels)      
plt.show()