python - Matplotlib 在绘图和水平线之间填充
问题描述
对不起,但我不能发布我的真实数据或情节..所以我在 MS Paint 中制作了图形情节。
所以我有我的情节 - 橙色线,作为一组 X 和 Y 值给出plt.plot(data_x, data_y)
。然后我以这种方式添加了水平线 - 蓝线:plt.axvline(x=10)
。现在我想在这条线和我的绘图之间填充颜色空间(最终,当值低于水平线时使用一种颜色,当它们高于水平线时使用第二种颜色)。
我尝试了plt.fill
并且虽然plt.fill_between
,plt.axhspan
我收到了维度问题或元素与序列的错误。
是否有捷径可寻?
解决方案
是的,有一个用于执行此操作的where
参数:ax.fill_between
import matplotlib.pyplot as plt
import numpy as np
# make data
x = np.linspace(0, np.pi * 2, 300)
y = np.sin(x)
# init figure
fig, ax = plt.subplots()
# plot sin and line
ax.plot(x, y, color='orange')
ax.axhline(0)
# fill between hline and y, but use (y > 0) and (y < 0)
# to create boolean masks determining where to fill
ax.fill_between(x, y, where=(y > 0), color='orange', alpha=.3)
ax.fill_between(x, y, where=(y < 0), color='blue', alpha=.3)
推荐阅读
- c# - 在 MVC C# 中通过属性路由使用分页时,我们如何跳过可选的空参数?
- c# - AWS Cogntio:注册/登录后如何在 .Net 中发出身份验证请求
- c++ - Qt QByteArray 无符号数据类型
- ios - 带有图像和文本的自定义按钮
- php - Codeigniter 3 迭代多维数组并插入数据库(控制器和模型)
- hibernate - Hibernate Cascade:在没有子实体的情况下保存父实体时删除子实体
- android - ViewDataBinding 类在使用后不包含我的组件
标签 - java - How to check if a word is nice (Java)
- node.js - 在 couchbase 同步网关中使用您想要的 ID 进行 Http 请求发布
- c# - 通过 C# 将项目插入 MongoDB 中的字典