如何沿X轴绘制“ _”对象但沿Y轴改变值?在python,matplotlib,pandas中

问题描述

我有两个数据框A和B,我想在数据框A图中绘制数据框B的值,它们共享相同的索引,但是在y点中,两个``_''对象将被放置在两个点上,另一个他们在Y中分享的价值下降了2点,怎么办?

看起来像图像=

enter image description here

数据帧: 数据框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

DATAFRAME 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 pd
import matplotlib.pyplot as plt


data_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",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'],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,facecolor='green')

plt.show()

结果: enter image description here