python - 条形图,每个条形都有垂直线
问题描述
%matplotlib inline
import matplotlib
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'index' : ['A', 'B', 'C', 'D'], 'first': [1.2, 1.23, 1.32, 1.08], 'second': [2, 2.2, 3, 1.08], 'max': [1.5, 3, 0.9, 'NaN']}).set_index('index')
我想绘制一个带有first
和second
作为条形的水平条形图。如果其他列,我想使用该max
列在相应值处显示垂直线。
我现在只管理条形图。
像这样:
关于如何实现这一目标的任何提示?
谢谢
解决方案
我已经NaN
用一些有限值替换了,然后你可以使用下面的代码
df = pd.DataFrame({'index' : ['A', 'B', 'C', 'D'], 'first': [1.2, 1.23, 1.32, 1.08],
'second': [2, 2.2, 3, 1.08], 'max': [1.5, 3, 0.9, 2.5]}).set_index('index')
plt.barh(range(4), df['first'], height=-0.25, align='edge')
plt.barh(range(4), df['second'], height=0.25, align='edge', color='red')
plt.yticks(range(4), df.index);
for i, val in enumerate(df['max']):
plt.vlines(val, i-0.25, i+0.25, color='limegreen')
推荐阅读
- encryption - 对于基于 ISO 的媒体的加密,每个样本是否有最大允许的子样本?
- ionic-framework - 如何在 ionic 3 中的 Onesignal 中将默认推送通知图标更改为小图标?
- c# - 动作结果
没有按预期工作 - javascript - ReactJS,react-router:登录页面中的排除导航菜单
- jquery - 如何从 jQuery 库中获取项目的属性
- java - Spring Boot JSP 页面有效,但 XmlViewResolver 无效
- python - 如何在多个线程之间共享 asyncio.Queue?
- reporting-services - 收到重复的电子邮件 SSRS 订阅
- capybara - 无头 Capybara 测试中的 webkit 目录上传
- python - 为某些案例指定搜索字段 DRF