仅在正X轴上绘制水平线

时间:2018-03-28 03:03:45

标签: python pandas numpy matplotlib

对于下面的图,我在x = 0处绘制了一条垂直线,在y = -5和y = -10处绘制了两条水平线,但是当我的x值从-24到+24时,绘制了水平线在x的整个范围内。我的目标是仅在正x区域中设置水平线(从x = 0开始并延伸到x的结束值)。任何帮助都将成为救星。提前致谢。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook
data= pd.read_table('/Users/Hrihaan/Desktop/A_B.txt', dtype=float, header=None, sep='\s+').values 
t=np.arange(-24,24,1)
x=data[:,1]
plt.xlabel('Time Interval (Hours)')
plt.ylabel('Energy')
plt.axvline(x=0,linestyle='--',color='grey')
plt.axhline(y=-5,linestyle='--',color='maroon') #want this horizontal line only in positive x-axis
plt.axhline(y=-10,linestyle='--',color='red') ##want this horizontal line only in positive x-axis
plt.plot(t,x,'green', linewidth=1)
plt.show()

1 个答案:

答案 0 :(得分:2)

选项1 您可以手动绘制线条。 语法为.rodata,它从(x1,y1)到(x2,y2)

绘制一条线
plt.plot((x1,x2), (y1, y2))

选项2 使用axhline的plt.plot((0, 24), (-10, -10), linestyle='--', color='red') 参数。 0是图的最左边,1是图的最右边。由于您的绘图是对称的,因此需要xmin才能从中间开始。

xmin=0.5