如何按轴1分组箱图

时间:2019-09-19 09:32:30

标签: python matplotlib seaborn boxplot

我有数据框:

id  meters  availability1   availability2   availability3
0   0   70  80  90
1   50  75  75  80
2   100 100 90  100
3   150 87  85  80
4   200 60  90  100

我想创建一个箱形图,以显示每个特定仪表的可用状态。 例如,0米的可用性为90到70。 所以我想为每一行而不是每一列创建箱形图。我找不到如何应用此方法而不更改数据框的结构。

我使用的代码如下:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

file = 'D:\\test_box_plot.csv'
df = pd.read_csv(file, sep = ";", usecols = ['availability1','availability2','availability3'])


sns.boxplot(x="variable", y="value", data=pd.melt(df))

plt.show()

我将不胜感激

1 个答案:

答案 0 :(得分:1)

我认为这是一个可能的解决方案,但是我不确定我是否了解您的需求:

from owslib.wms import WebMapService

url = 'https://rasterdata.hunzeenaas.nl/erdas-iws/ogc/wms/Rasterdata?service=WMS&request=getmap'
wms = WebMapService(url)

img = wms.getmap( layers='Luchtfoto_2015_Ortho_25cm_RGB_voorjaarsvlucht'],
                  styles=['default'],
                  srs='EPSG:3857',
                  bbox=(72865, 7022456, 730231, 7023717),
                  size=(1000,1000),
                  format='image/jpeg',
                  transparant=True )
out = open('output.jpg', 'wb')
out.write(img.read())
out.close()

此处的技巧是使用数据帧的转置矩阵。 我建议您打印转置后的数据框,以了解如何引用每一列。

使用您发布的数据,我的转置数据框为:

 boxMeters = sns.boxplot(x=0,y=1,data=df.transpose(), palette="Set3")

“米”位于列中的下面,列为0,而availability1是列1。 您告诉我它是否适合您。