我使用以下代码来显示绘图。我希望根据阈值0.05有条件地格式化这些值。
from matplotlib.colors import to_rgba
# Generate x-axis
x = np.linspace(0, len(data_formula), len(data_formula))
colors = np.where(data_formula <= 0.05, "blue", "green")
plt.plot(x, data_formula, c=colors)
# Add labels and title
plt.ylabel('Volume')
plt.xlabel('time')
plt.title('Energy')
# Display the plot
plt.show()
不幸的是,我收到了错误:array(['blue', 'blue', 'blue', ..., 'blue', 'blue', 'blue'], dtype='<U5') is not a valid value for color
,这表明我向color参数传递了错误的值。我试过用列表等。但好像不管用。哪里出了问题?参数color
是不接受任何数据结构还是格式错误?
供参考:data_formula
定义如下:
def energy(x):
return (x**2)
data_formula = np.apply_along_axis(energy, axis=0, arr=data_normalized)
数据类型:numpy.ndarray
。
1条答案
按热度按时间vsikbqxv1#
要使用不同的颜色,您应该使用其颜色分割数据段:
我假设你的数据是这样的:
如果您只需要点而不是线段,请执行以下操作:
这最后一个灵感来自stackoverflow: different colors series scatter plot on matplotlib。
如果前面的答案需要很长时间,请尝试:
无论如何,我从来没有见过一个图需要超过30秒,所以也许你必须重新加载你的环境,你有太多的数据绘制,应该作出不同的图,或者你有一个低RAM的问题。