如何沿 X 轴绘制“_”对象但改变 Y 轴上的值?(在 python、matplotlib、pandas 中)
how to plot "_" objects along the X axis but varying the values on the Y axis ?(in python, matplotlib, pandas)
我有两个数据帧A和B,我想在数据帧A图中绘制数据帧B的值,两者共享相同的索引,但是在y点两个“_”对象将放置一个向上两个点并且其他2点下来他们在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
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","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()
结果:
我有两个数据帧A和B,我想在数据帧A图中绘制数据帧B的值,两者共享相同的索引,但是在y点两个“_”对象将放置一个向上两个点并且其他2点下来他们在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
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","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()
结果: