我有两个数据框A和B,我想在数据框A的图表中绘制数据框B的值,这两个数据框共享相同的索引,但在Y点上将放置两个”_”对象,一个向上移动两个点,另一个向下移动两个点,它们共享的Y值是如何做到的?
看起来像这样的图片=
数据框:数据框A
Date 2015-08-31 112.760002 2015-09-01 107.720001 2015-09-02 112.339996 2015-09-03 110.370003 2015-09-04 109.269997 2015-09-08 112.309998 2015-09-09 110.150002 2015-09-10 112.570000 2015-09-11 114.209999 2015-09-14 115.309998数据框B Close 2015-08-31 112.760002 2015-09-01 107.720001 2015-09-02 112.339996 2015-09-08 112.309998
回答:
不太确定完全理解您的期望,但您应该可以使用以下方法处理:
import pandas as pdimport matplotlib.pyplot as pltdata_a={"date":["2015-08-31","2015-09-01", "2015-09-02","2015-09-03","2015-09-04","2015-09-08","2015-09-09","2015-09-10","2015-09-11","2015-09-14"],"val":[112.760002,107.720001,112.339996,110.370003,109.269997,112.309998,110.150002,112.570000,114.209999,115.309998]}data_b={"date":["2015-08-31","2015-09-01","2015-09-11","2015-09-14"],"val":[112.760002,107.720001,114.209999,115.309998]}df_a=pd.DataFrame(data_a)df_b= pd.DataFrame(data_b)df_a['date']=pd.to_datetime(df_a['date'],format='%Y-%m-%d', errors='ignore')df_b['date']=pd.to_datetime(df_b['date'],format='%Y-%m-%d', errors='ignore')fig, ax = plt.subplots()ax.plot(df_a['date'],df_a["val"],color='red')ax.scatter(df_b['date'],df_b["val"]-1,marker="_",s=30,facecolor='green')ax.scatter(df_b['date'],df_b["val"]+1,marker="_",s=30,facecolor='green')plt.show()