我有一个包含Q和S两列的数据集。下面显示了它的一个示例:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:66)
Caused by: com.amazonaws.SdkClientException: Unable to execute HTTP request: Timeout waiting for connection from pool
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1175)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1121)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4921)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4867)
at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1467)
at com.test.spark.javaspark.JavasparkApplication.main(JavasparkApplication.java:42)
... 5 more
Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:313)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:279)
at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.amazonaws.http.conn.ClientConnectionRequestFactory$Handler.invoke(ClientConnectionRequestFactory.java:70)
at com.amazonaws.http.conn.$Proxy43.get(Unknown Source)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:191)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1297)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1113)
... 16 more
基于“ S”列中的值,我定义了三组:
df = pd.DataFrame(np.array([[1,40], [2, 51], [3, 59], [4, 10],
[5, 30], [7, 20], [9, 21], [13, 30], [15, 70], [2, 81], [3, 85],
[4, 67], [9, 120], [2, 481], [12, 51], [16, 120], [8, 9], [14, 15],
[11, 7], [12, 110], [6, 4], [9, 220], [1, 40], [2, 15], [14, 82], [7, 50]]),columns=['Q', 'S'])
此外,我还为“ Q”列定义了三个组:
Group_1A = df[(df['S'] >= 0) & (df['S'] <= 3)]
Group_2A = df[(df['S'] >= 4) & (df['S'] <= 8)]
Group_3A = df[(df['S'] >= 9) & (df['S'] <= 16)]
我需要弄清楚每组中S的分布,并且需要绘制一个包括所有9个箱形图的图。
我可以绘制每个箱形图,但是我不知道如何在一个图中显示所有箱形图。 例如,我可以使用以下代码绘制Group_1A和Group_1B的箱线图:
Group_1B = df[(df['Q'] >= 0) & (df['Q'] <= 10)]
Group_2B = df[(df['Q'] >= 11) & (df['Q'] <= 50)]
Group_3B = df[(df['Q'] >= 51) & (df['Q'] <= 481)]
但是,这只给了我9个箱型图中的1个。
我想知道是否有人可以帮助我。
预先感谢
答案 0 :(得分:0)
我刚刚发现我需要使用matplolib.subplots。