首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在matplotlib barh绘图中更改宽度

如何在matplotlib barh绘图中更改宽度
EN

Stack Overflow用户
提问于 2021-04-29 03:04:05
回答 1查看 1.3K关注 0票数 1

我将在我的第一个列表中只有一条记录,并且在我的第二个列表中对该记录进行计数。我需要把它们放在一个水平条形图中。列表1在Y轴上的值和列表2的值作为条形图的标签。下面的代码给了我一个宽度不能改变的条形图。我怎样才能改变宽度?这么大的宽度看起来很别扭。如果不是在matplotlib中,我可以使用其他的python库来实现吗?

代码语言:javascript
复制
import os
import cx_Oracle
import matplotlib.pyplot as plt

r_c = [Sales_report_2020]
a_i =  [1311]

 
# Figure Size
fig, ax = plt.subplots(figsize =(12, 8))
#replace the None with integer 0
b = [0 if x is None else x for x in a_i]
print(b)
 
# Horizontal Bar Plot
plt.barh(r_c,b,height=0.5)
plt.ylim(-0.5, len(b) - 0.5)
ax.tick_params(width=0.5,length=6)
 

 
# Add annotation to bars
for i in ax.patches:
    plt.text(i.get_width()+0.2, i.get_y()+0.27,
            "{:1.0f}".format(i.get_width()),
             fontsize = 10, fontweight ='bold',
             color ='grey') #str(round((i.get_width()), 2))
 
# Add Plot Title
ax.set_title('DTP!',
             loc ='center', )
 
# Add Text watermark
fig.text(0.9, 0.15, 'STPREPORT', fontsize = 12,
         color ='grey', ha ='right', va ='bottom',
         alpha = 0.7)
 
 
path = r"\\ssd.COM\View\Folder_Redirect\id\Documents\Conda_Envs"
 
os.chdir(path)
plt.savefig(path + '\BAR.png')
 
# Show Plot
plt.show()
conn.close()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-29 03:20:07

barh中的widthheight参数可以为您提供一点帮助,但由于只有一条记录,matplotlib可能会自动调整绘图,使其看起来比您需要的更大。调整你的ylim应该会对你有所帮助。我不能执行你的代码,因为我没有数据,但下面解释了我的意思:

例如,

代码语言:javascript
复制
plt.barh(1311, width=0.01, height=0.01)

为您提供

代码语言:javascript
复制
plt.barh(1311, width=20, height=20)

为您提供

但是,如果你设置一个更好的ylim,你可以得到一个更好看的水平条。

代码语言:javascript
复制
plt.barh(1311, width=0.5, height=20)
plt.ylim([1200, 1400])

当然,您可以编辑这些值以获得所需的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67306398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档