条形图带有使用子图的标准错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条形图带有使用子图的标准错误相关的知识,希望对你有一定的参考价值。

我有以下四个条形图,我想要的只是将它们放在子图中,如代码所示。谁能告诉我该怎么做?由于某种原因,它没有工作。下面是代码:(对不起,必须将其放在blockquote中,否则我可以发布问题。希望没关系)

编辑:为了澄清-我有四个单独的不同图表(下面的代码),我只想使用子图将它们放入一个图表中。但这由于某些原因不起作用。

import numpy as np 
import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = (12,5) 
Risk = ['3', '6', '9'] 
three = [0.0039942, 0.1278698, -0.1238756] 
six = [  0.0126427 , 0.2127346, -0.2000919] 
nine = [  0.0619075, 0.3083861, -0.2464786] 
twelve = [  0.1038604, 0.3864892 , -0.2826288]

error_three = [0.0105196, 0.0150707, 0.0102266]
error_six = [0.0147663, 0.0188184, 0.0112528] 
error_nine = [0.0193206, 0.0243935, 0.0145931] 
error_twelve = [ 0.0230019, 0.026358, 0.014386]


 ind = np.arange(len(Risk)) width = 0.23 fig, axs = plt.subplots()

 rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
 'K = 3',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="") rects2 = axs.bar(ind, six, width, yerr=error_six, label = 'K = 6',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="/")

 rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K = 9',align='center', ecolor='black', capsize=5,color='white', edgecolor='black', hatch="-")

 rects4 = axs.bar(ind + width + width, twelve, width,
 yerr=error_twelve, label = 'K = 12',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="|")

 axs.set_xticks(ind) 
 axs.set_xticklabels(('Buy','Sell','Buy-sell'))
 axs.legend(loc=1, fontsize = 10) 
 axs.tick_params(labelsize=10)
 fig.suptitle('J = 3', fontsize=15)

代码块1

 three = [-0.0032653, 0.1075028, -0.1107681] 
 six = [  0.01766 , 0.2408147, -0.2231547] 
 nine = [  0.0611617, 0.3595795, -0.2984177] 
 twelve = [  0.1429058, 0.4146744 , -0.2717686]

 error_three = [0.0107142, 0.0161169, 0.0105163] 
 error_six = [0.0160058, 0.0220724,0.0119112] 
 error_nine = [0.020732, 0.0270203, 0.0131933]
 error_twelve = [ 0.0248679, 0.0311742, 0.0177063]

 ind = np.arange(len(Risk)) width = 0.23 fig, axs = plt.subplots()

 rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
 'K = 3',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="") rects2 = axs.bar(ind, six, width, yerr=error_six, label = 'K = 6',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="/")

 rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K
 = 9',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="-")

 rects4 = axs.bar(ind + width + width, twelve, width,
 yerr=error_twelve, label = 'K = 12',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="|")

 axs.set_xticks(ind) 
 axs.set_xticklabels(('Buy','Sell','Buy-sell'))
 axs.legend(loc=1, fontsize = 10) 
 axs.tick_params(labelsize=10)
 fig.suptitle('J = 6', fontsize=15)

代码块2

three = [0.0289784, 0.116908, -0.087973] 
six = [ 0.0918798 , 0.3250896, -0.2332098] 
nine = [  0.1791642, 0.3817135, -0.2025493] 
twelve = [ 0.2646989, 0.4489613 , -0.1842624]

 error_three = [0.0116038, 0.0168931, 0.0098965] 
 error_six = [0.0169266, 0.0231926,0.0109302] 
 error_nine = [0.021765, 0.0307299, 0.0155094]
 error_twelve = [ 0.0254275, 0.0328411,0.0152209]

 ind = np.arange(len(Risk)) width = 0.23 fig, axs = plt.subplots()

 rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
 'K = 3',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="") 
 rects2 = axs.bar(ind, six, width, 
                  yerr=error_six, label = 'K = 6',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="/")

 rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K
 = 9',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="-")

 rects4 = axs.bar(ind + width + width, twelve, width,
 yerr=error_twelve, label = 'K = 12',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="|")

 axs.set_xticks(ind) 
 axs.set_xticklabels(('Buy','Sell','Buy-sell'))
 axs.legend(loc=1, fontsize = 10) 
 axs.tick_params(labelsize=10)
 fig.suptitle('J = 9', fontsize=15)

代码块3

three = [0.0779324, 0.1986291, -0.1206967] 
six = [ 0.1796554,0.2999987, -0.1203433] 
nine = [  0.2796311, 0.3887926, -0.1091614]
twelve = [0.3887396, 0.4632978 , -0.0745582] 
error_three = [0.0122188,0.0175826, 0.0097949] 
error_six = [0.0169295, 0.0264755,0.0149082] 
error_nine = [0.0217114,0.0302063, 0.0130198] 
error_twelve = [0.0258077, 0.0332595,0.0135785]


 ind = np.arange(len(Risk)) width = 0.23 fig, axs = plt.subplots()

 rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
 'K = 3',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="") rects2 = axs.bar(ind, six, width, yerr=error_six, label = 'K = 6',align='center',
                 ecolor='black',
                 capsize=5,color='white',
               edgecolor='black',
                 hatch="/")

rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K = 9',align='center',
                 ecolor='black',
                 capsize=5,color='white',
                 edgecolor='black',
                 hatch="-")

 rects4 = axs.bar(ind + width + width, twelve, width, yerr=error_twelve, label = 'K = 12',align='center', ecolor='black', capsize=5,color='white', edgecolor='black', hatch="|")

axs.set_xticks(ind) axs.set_xticklabels(('Buy','Sell','Buy-sell'))
axs.legend(loc=1, fontsize = 10) axs.tick_params(labelsize=10)
fig.suptitle('J = 12', fontsize=15)
fig, axs = plt.subplots(4, 1, constrained_layout=True)
plt.show()
答案

检查下面的代码,让我知道它是否正常运行。

import numpy as np 
import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = (12,5)

Risk = ['3', '6', '9'] 
three = [0.0039942, 0.1278698, -0.1238756] 
six = [  0.0126427 , 0.2127346, -0.2000919] 
nine = [  0.0619075, 0.3083861, -0.2464786] 
twelve = [  0.1038604, 0.3864892 , -0.2826288]

error_three = [0.0105196, 0.0150707, 0.0102266]
error_six = [0.0147663, 0.0188184, 0.0112528] 
error_nine = [0.0193206, 0.0243935, 0.0145931] 
error_twelve = [ 0.0230019, 0.026358, 0.014386]


ind = np.arange(len(Risk))
width = 0.23 
fig, axs = plt.subplots()

rects1 = axs.bar(ind - width, three, width, yerr=error_three, 
                label = 'K = 3',
                align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="")

rects2 = axs.bar(ind, six, width, yerr=error_six, label = 'K = 6',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="/")

rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K = 9',align='center', ecolor='black', capsize=5,color='white', edgecolor='black', hatch="-")

rects4 = axs.bar(ind + width + width, twelve, width, yerr=error_twelve, label = 'K = 12',align='center',
                  ecolor='black',
                  capsize=5,color='white',
                  edgecolor='black',
                  hatch="|")

axs.set_xticks(ind) 
axs.set_xticklabels(('Buy','Sell','Buy-sell'))
axs.legend(loc=1, fontsize = 10) 
axs.tick_params(labelsize=10)
fig.suptitle('J = 3', fontsize=15)

# In[]: Code block 1

three = [-0.0032653, 0.1075028, -0.1107681] 
six = [  0.01766 , 0.2408147, -0.2231547] 
nine = [  0.0611617, 0.3595795, -0.2984177] 
twelve = [  0.1429058, 0.4146744 , -0.2717686]

error_three = [0.0107142, 0.0161169, 0.0105163] 
error_six = [0.0160058, 0.0220724,0.0119112] 
error_nine = [0.020732, 0.0270203, 0.0131933]
error_twelve = [ 0.0248679, 0.0311742, 0.0177063]

ind = np.arange(len(Risk))
width = 0.23 
fig, axs = plt.subplots()

rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
'K = 3',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="")

rects2 = axs.bar(ind, six, width, yerr=error_six, label = 'K = 6',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="/")

rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K = 9',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="-")

rects4 = axs.bar(ind + width + width, twelve, width,
yerr=error_twelve, label = 'K = 12',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="|")

axs.set_xticks(ind) 
axs.set_xticklabels(('Buy','Sell','Buy-sell'))
axs.legend(loc=1, fontsize = 10) 
axs.tick_params(labelsize=10)
fig.suptitle('J = 6', fontsize=15)

# In[]: Code block 2

three = [0.0289784, 0.116908, -0.087973] 
six = [ 0.0918798 , 0.3250896, -0.2332098] 
nine = [  0.1791642, 0.3817135, -0.2025493] 
twelve = [ 0.2646989, 0.4489613 , -0.1842624]

error_three = [0.0116038, 0.0168931, 0.0098965] 
error_six = [0.0169266, 0.0231926,0.0109302] 
error_nine = [0.021765, 0.0307299, 0.0155094]
error_twelve = [ 0.0254275, 0.0328411,0.0152209]

ind = np.arange(len(Risk)) 
width = 0.23 
fig, axs = plt.subplots()

rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
'K = 3',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="") 
rects2 = axs.bar(ind, six, width, 
                yerr=error_six, label = 'K = 6',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="/")

rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K = 9',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="-")

rects4 = axs.bar(ind + width + width, twelve, width,
yerr=error_twelve, label = 'K = 12',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="|")

axs.set_xticks(ind) 
axs.set_xticklabels(('Buy','Sell','Buy-sell'))
axs.legend(loc=1, fontsize = 10) 
axs.tick_params(labelsize=10)
fig.suptitle('J = 9', fontsize=15)

# In[]: Code block 3

three = [0.0779324, 0.1986291, -0.1206967] 
six = [ 0.1796554,0.2999987, -0.1203433] 
nine = [  0.2796311, 0.3887926, -0.1091614]
twelve = [0.3887396, 0.4632978 , -0.0745582] 
error_three = [0.0122188,0.0175826, 0.0097949] 
error_six = [0.0169295, 0.0264755,0.0149082] 
error_nine = [0.0217114,0.0302063, 0.0130198] 
error_twelve = [0.0258077, 0.0332595,0.0135785]


ind = np.arange(len(Risk)) 
width = 0.23 
fig, axs = plt.subplots()

rects1 = axs.bar(ind - width, three, width, yerr=error_three, label =
'K = 3',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="") 

rects2 = axs.bar(ind, six, width, yerr=error_six, label = 'K = 6',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="/")

rects3 = axs.bar(ind + width, nine, width, yerr=error_nine, label = 'K = 9',align='center',
                ecolor='black',
                capsize=5,color='white',
                edgecolor='black',
                hatch="-")

rects4 = axs.bar(ind + width + width, twelve, width, yerr=error_twelve, label = 'K = 12',align='center', ecolor='black', capsize=5,color='white', edgecolor='black', hatch="|")

axs.set_xticks(ind) 
axs.set_xticklabels(('Buy','Sell','Buy-sell'))
axs.legend(loc=1, fontsize = 10) 
axs.tick_params(labelsize=10)
fig.suptitle('J = 12', fontsize=15)
plt.show()

以上是关于条形图带有使用子图的标准错误的主要内容,如果未能解决你的问题,请参考以下文章

添加独立于条形文本标签的子图编号

用均值条形图及其标准差 ggplot2 总结数据框

分组条形图的子图分组图例

在带有子图的 geopandas 图中添加图例会改变图的大小

是否有可能用谷歌图表创建两个侧面条形图?

带有子图的多个标题(副标题)