Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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显示方框图中的平均值?_Python_Pandas_Numpy_Matplotlib - Fatal编程技术网

是否有任何方法可以使用Python显示方框图中的平均值?

是否有任何方法可以使用Python显示方框图中的平均值?,python,pandas,numpy,matplotlib,Python,Pandas,Numpy,Matplotlib,我刚刚开始使用Matplotlib,我正在尝试学习如何使用Colab在Python中绘制方框图 我的问题是:我无法在图表上显示中值。图表只显示了四分位数、平均值和异常值。有人能帮我吗? 我的代码如下 from google.colab import auth auth.authenticate_user() import gspread import numpy as np from oauth2client.client import GoogleCredentials gc = gsprea

我刚刚开始使用Matplotlib,我正在尝试学习如何使用Colab在Python中绘制方框图

我的问题是:我无法在图表上显示中值。图表只显示了四分位数、平均值和异常值。有人能帮我吗?

我的代码如下

from google.colab import auth
auth.authenticate_user()
import gspread
import numpy as np
from oauth2client.client import GoogleCredentials
gc = gspread.authorize(GoogleCredentials.get_application_default())

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as pl
sns.set_theme(style="ticks", color_codes=True)

wb = gc.open_by_url('URL_JUST_FOR_EXAMPLE')
boxplot = wb.worksheet('control-Scale10to100')
boxplotData = boxplot.get_all_values()
df = pd.DataFrame(boxplotData[1:], columns=boxplotData[0])
df.drop(df.columns[0], 1, inplace=True)
df = df.apply(pd.to_numeric, errors='ignore')
df.dtypes

df.describe()

dfBoxPlotData = df.iloc[:,4:15]
dfBoxPlotData.apply(pd.to_numeric)
dfBoxPlotData.head()
props = dict(whiskers="Black", medians="Black", caps="Black")
ax = df.plot.box(rot=90, fontsize=14, figsize=(15, 8), color=props, patch_artist=True, grid=False, meanline=True, showmeans=True, meanprops=dict(color='red'))

如果我理解正确,您正在查找
showmeans
meanline

将熊猫作为pd导入
将numpy作为np导入
np.随机种子(123)
df=pd.DataFrame(np.random.randn(10))
df.plot.box(showmeans=True,meanline=True)

我尝试使用均值和中值不同的样本数据集运行代码,就像@tdy显示的那样,只要参数
showmeans=True
meanline=True
被传递到
df.plot.box
方法,均值和中值都应该显示出来。在你的数据集中,均值和中位数是否可能足够接近,以至于难以区分

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as pl

mu, sigma = 50., 10. # mean and standard deviation
np.random.seed(42)
s = np.random.normal(mu, sigma, 30)

df = pd.DataFrame({'values':s})
props = dict(whiskers="Black", medians="Black", caps="Black")
ax = df.plot.box(rot=90, fontsize=14, figsize=(15, 8), color=props, patch_artist=True, grid=False, meanline=True, showmeans=True, meanprops=dict(color='red'))
pl.show()

费尔南多的代码中包含了这两个参数啊,你说得对,那么我不理解他的问题。亲爱的@Derek O,谢谢你,你说得对!我检查了我的数据集,发现平均值和中值足够接近,可以在显示的图表上做出任何区分。很高兴听到我的回答很有帮助!请考虑让类似问题的人也能找到答案。