- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图在我的绘图中将一个数据集表示为颜色 block (而不是显示为可变宽度条形图,我想将其显示为具有背景颜色的可变宽度 block 。)
我可以这样做:
import numpy
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.colors as colors
# Create fake data
x = numpy.linspace(0,4)
y = numpy.exp(x)
# Now plot one by one
bar_width = x[1] - x[0] # assuming x is linealy spaced
for pointx, pointy in zip(x,y):
point = 40
current_color = cm.jet( min(pointy/30, 30)) # maximum of 30
plt.bar(pointx, point, bar_width, color = current_color)
plt.show()
但是我没有将颜色图缩放到我的数据范围。
或者我可以做类似的事情:
for i in range(10):
color = cm.jet(min(i/30, 30))
plt.axvspan(i, i+1, facecolor=color, alpha=0.5)
但这同样不能令人满意,因为我希望有一种方法可以将我的数据自动缩放到 cmap 的最小值和最大值。
谢谢!
最佳答案
关于“您的数据范围”,我假设您的意思是颜色图最大为 pointy>30
。这可以通过简化您的 current_color
轻松解决:
import numpy
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.colors as colors
# Create fake data
x = numpy.linspace(0,4)
y = numpy.exp(x)
# Now plot one by one
bar_width = x[1] - x[0] # assuming x is linealy spaced
max_y = y.max()
min_y = y.min()
for pointx, pointy in zip(x,y):
point = 40
current_color = cm.jet((pointy - min_y)/(max_y - min_y))
plt.bar(pointx, point, bar_width, color = current_color)
plt.show()
以前,一旦 pointy
大于 30,cmap.jet
的值就会大于 unity,后者是彩色图的上限阈值。相反,我们找到 y 的范围,然后找到 pointy
所在范围的路径分数,并将该数字(介于 0 和 1 之间)传递给颜色图。
关于python - Matplotlib:使用颜色图显示状态(axvspan 或 bar?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20974252/
我有这样一个数据框 from datetime import date import random start_date = date.today().replace(day=1, month=1).
我正在尝试在范围为 [-0.2,1.4] 和 [-0.2,1.4] 的图上绘制四个彩色象限。问题是我在尝试使用 plt.axvspan 排列象限的 y 轴坐标时遇到问题: roc_t = 0.4365
我使用这行代码通过 matplotlib 在图形上创建垂直跨度。 matplotlib.pyplot.axvspan(datetime.datetime.strptime("09-10-2015",
我使用这行代码通过 matplotlib 在图形上创建垂直跨度。 matplotlib.pyplot.axvspan(datetime.datetime.strptime("09-10-2015",
我想“模拟”图中两个对象的位置。我想用 axvspan 来做到这一点。我想用 slider 移动一个 axvspan。我想做这样的事情: import matplotlib.pyplot as plt
我正在为海岸工程应用程序编写一个Pythonic脚本,该脚本应该输出一个带有两个子图的图形。 问题是我想使用 plt.axvspan() 对两个子图的一部分进行着色,但由于某种原因它只对其中一个子图进
我尝试在不同的子图中着色。 我的代码: f, (ax) = plt.subplots(1, 7 , sharey=True, figsize=(14,2)) color=['g','c','m','y
我想绘制一些随季节变化的时间序列,并使用 axvspan 将图中冬季部分的阴影与夏季部分的阴影不同。我正在使用 pyplot.plot_date .我的 y 值是一个 np float 数组,我的 x
我正试图在带有子图的 Pandas 图中遮蔽 Spring 月份。但它只是对最后一个子图进行着色。我如何让它遮蔽所有地 block ? 我使用 axvspan 在每年的 4 月 1 日到 6 月 30
我试图在我的绘图中将一个数据集表示为颜色 block (而不是显示为可变宽度条形图,我想将其显示为具有背景颜色的可变宽度 block 。) 我可以这样做: import numpy import ma
我注意到两个相邻的区域重叠,所以中间出现了一条烦人的线。我尝试使用“capstyle = 'butt'”来避免行之间的重叠,但在这里它不起作用。 这是一个最小的例子: import matplotli
我正在尝试使用多种颜色突出显示 x 轴上的区域。我设法通过沿 x 轴剖切区域来找到解决方案,如下图所示: 但是,我想要一个在 y 轴上进行切片的解决方案。以图中的6362为例。有没有什么方法可以创建类
遮蔽 pandas 最优雅的方式是什么?基于 DataFrame 中的列之一的子图? 一个简单的例子: In [8]: from random import * import pandas as pd
我是一名优秀的程序员,十分优秀!