我有一些库存数据,我绘制了数据index = x-axis
,price = y-axis
,现在计算之后,我发现了一个价格数组,即价格的子数组。我想突出显示图形上数组中的点
我尝试了markvery()
documentation,但无法理解其工作原理。
这是我的代码
from matplotlib
import pyplot as plt
x =[ 1,2,3,4,5,6,7] # array to be plotted
y=[100,111,112,111,112,113,114] # array to be plotted
subArray = [111,114] # array to be highlighted
plt.plot(x,y)
plt.show()
任何帮助将不胜感激
答案 0 :(得分:1)
您的子数组包含两个在y
中出现多次的点。因此,首先可以从y获取subArray元素的索引,然后再次分别绘制它们以突出显示它们。正如@ImportanceOfBeingErnest所指出的那样,没有内置的通用方法。
话虽如此,如果您转换为NumPy数组,事情会变得更加容易。以下是在列出的here
中查找索引的一种方法import numpy as np
x =np.array([ 1,2,3,4,5,6,7]) # array to be plotted
y=np.array([100,111,112,111,112,113,114]) # array to be plotted
subArray = [111,114]
ids = np.nonzero(np.in1d(y, subArray))[0]
plt.plot(x,y)
plt.plot(x[ids], y[ids], 'bo')