在python中向绘制的线(而不是轴)添加记号?

在python中向绘制的线(而不是轴)添加记号?,python,matplotlib,plot,Python,Matplotlib,Plot,我正在制作一个折线图,希望沿绘制线添加第三个变量(时间)的对数刻度线。下面是我输入的一个简化版本,现实不那么整洁 input_x = [0, 0.5, 1, 2.5, 2, 2.5, 3, 3.5, 4, 4.5] input_y = [10, 20, 30, 40, 50, 60, 70, 80 , 90, 100] input_time = [11, 30, 40, 250, 356, 488, 571, 765, 823, 1002] 然后,我插入以下内容: time_range = [

我正在制作一个折线图,希望沿绘制线添加第三个变量(时间)的对数刻度线。下面是我输入的一个简化版本,现实不那么整洁

input_x = [0, 0.5, 1, 2.5, 2, 2.5, 3, 3.5, 4, 4.5]
input_y = [10, 20, 30, 40, 50, 60, 70, 80 , 90, 100]
input_time = [11, 30, 40, 250, 356, 488, 571, 765, 823, 1002]
然后,我插入以下内容:

time_range = [i for i in range(0.1, 2.5, 10)]
interpolate1 = interp1d(input_time, input_x, kind='linear')
y = interpolate1(time_range)
interpolate2 = interp1d(input_time, input_y, kind='linear')
x = interpolate2(time_range)
并定义要沿直线图显示为对数刻度的时间刻度:

time_ticks = [1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900,1000]
然后在以下时间找到x和y的值:

tick_array = [min(zip(time_range, x, y), key=lambda i:abs(i[0]-val)) for val in time_ticks]
tick_x = [line[1] for line in tick_array]
tick_y = [line[2] for line in tick_array]
并绘制x和y值的折线图:

fig = plt.figure()
plt.plot(x, y)
我知道我可以在时间点绘制:

plt.plot(tick_x, tick_y, '|')

但这只是绘制垂直虚线,我希望它们垂直于绘制的线。python中有没有一个函数可以帮我做到这一点?

对于这里的已故arrivers,我刚刚偶然发现了这个(2016年11月),它似乎正是你想要的:与线图垂直的标记


您是否尝试过用“|”而不是“|”作为标记?我有,但我的线图并不像我在伪代码中给出的那样简单,它是水平的,然后向上弯曲,所以“_”或“|”都不起作用。我想我需要一种方法来告诉标记与线条图垂直,但我不知道如何做到这一点,为什么不使用一个更大的标记和一个不同的颜色,如第一个“-b”来绘制一条蓝线,然后“ro”添加红色圆圈?