为了账号安全,请及时绑定邮箱和手机立即绑定

Python单杠双图

Python单杠双图

一只萌萌小番薯 2021-11-23 19:09:29
我在 Python 中制作了一个水平条形图,条形图从左到右:我想添加一个额外的水平条,在前一个条的同一水平面上,这次是从右到左。两个水平条应同时出现。有没有人知道如何做到这一点?如果我使用 reverse 函数,一切都将被反转,但我只需要反转新的特定栏,而无需更改任何其他内容。理想情况下,在新图片上,新条形图将从右侧出现并在 25 处停止,误差条从 23 到 27 (-/+ 2)。这是我的脚本:import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(9.5, 2.7))# Create horizontal barsplt.barh(0, 18,height=0.2,facecolor='orange',edgecolor='black',linewidth=2)plt.errorbar(x=[18], y=[0], xerr=[2],color='black',fmt='none',linewidth=5,zorder=4)plt.xticks(np.arange(10, 30+1, 1.0),fontsize=14)plt.yticks([])plt.xlim(10, 30)plt.ylim(-.13, .13)plt.show()
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

诀窍是使用left指定栏应该从哪里开始,然后width为您的栏传递一个负数,使其从右向左延伸。由于窗口的右侧也会随着您的数据而变化,您可能还想设置某种参数,即x_max:


import numpy as np

import matplotlib.pyplot as plt


x_max = 30


plt.figure(figsize=(9.5, 2.7))


# Create horizontal bars

plt.barh(0, 18,height=0.2,facecolor='orange',edgecolor='black',linewidth=2)

plt.errorbar(x=[18], y=[0], xerr=[2],color='black',fmt='none',linewidth=5,zorder=4)


# new code: use left to specify the start position, then make its width negative

# to extend right to left

plt.barh(0, -5, height=0.2, left=x_max, facecolor='red',edgecolor='black',linewidth=2)

# place error bars the same as you did for the above.

plt.errorbar(x=[x_max - 5], y=[0], xerr=[2],color='black',fmt='none',linewidth=5,zorder=4)



plt.xticks(np.arange(10, 30+1, 1.0),fontsize=14)

plt.yticks([])


plt.xlim(10, x_max)

plt.ylim(-.13, .13)


plt.show()

//img1.sycdn.imooc.com//619ccc0e00018b3508370256.jpg

查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号