如何解决Matplotlib条形图之间的间距
我有一个条形图,显示1996-2020年的年度数据。每年分配2个酒吧。我想不出一种方法来增加每组2个小节之间(或每年之间)的间距。我知道我可以更改条形宽度,但这不是我想要的。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
import seaborn as sns
sns.set()
sns.set_style("ticks")
record_highs = pd.read_csv('MSY Audubon Record High Comparison 1996-2020.csv')
x= record_highs['Year']
aud = record_highs['AUD']
msy = record_highs['MSY']
plt.figure(figsize = (9,6))
plt.bar(x - 0.25,aud,width = 0.5)
plt.bar(x + 0.25,msy,width = 0.5)
plt.xticks(np.arange(1996,2021,1),rotation=45,fontsize=9)
plt.title('Record High Comparison \n May 1996-July 2020')
plt.ylabel('Number of Daily Record Highs by Year')
plt.legend(labels=['Audubon','MSY'])
plt.xlim([1995,2021])
解决方法
您可以将条形的中心放在x - year_width/4
和x + year_width/4
上,例如选择year_width
作为0.8
:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
import seaborn as sns
sns.set()
sns.set_style("ticks")
x = np.arange(1996,2021)
aud = np.random.randint(0,26,len(x))
msy = np.random.randint(0,len(x))
plt.figure(figsize=(9,6))
year_width = 0.8
plt.bar(x - year_width / 4,aud,width=year_width / 2,align='center')
plt.bar(x + year_width / 4,msy,align='center')
plt.xticks(x,rotation=45,fontsize=9)
plt.title('Record High Comparison \n May 1996-July 2020')
plt.ylabel('Number of Daily Record Highs by Year')
plt.legend(labels=['Audubon','MSY'])
plt.xlim([1995,2021])
plt.tight_layout()
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。