首页 > 解决方案 > 如何将具有不同数量数据点的 2 个数据集缩放到一个图表中?

问题描述

我试图在同一个图上绘制两个数据集,但遇到了麻烦。第一个数据集有 732 个数据点和 2 个数据类型(Timeseries 和 float),而第二个数据集有 504 个数据点和 2 个数据类型。我在缩放任何一个数据集时遇到了很大的麻烦,以便它们在同一个图表上看起来很好。我继续收到 ValueError x and y must have same first dimension, but have shapes (732, 1) and (504, 1),。这是我的代码:

# ------ Benchmark Data
# ------ S&P 500 Adjusted-Closing Info
IXIC = wb.DataReader(
    '^IXIC', data_source = 'yahoo', start = '08-05-2018', end = '08-05-2020')['Adj Close'].to_frame()


# ------ Client's Data
file_name = '/Users/X/Desktop/CharlesSchwab.Client.PV.csv'
Client_Data = pd.read_csv(file_name)

# ------ Date Info
Client_Data['Date'] = pd.to_datetime(Client_Data['Date'])
Dates = pd.date_range(min(Client_Data["Date"]), max(Client_Data["Date"]))
df_Dates = pd.DataFrame(Dates).iloc[::-1]
df_Dates.columns = ['Dates']

# ------ Personal Value Info
PV = pd.DataFrame(Client_Data["Personal Value"].str.replace('$','').str.replace(',','').astype(float))

# ------ Plot data
t = df_Dates
data1 = PV
data2 = IXIC

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('time')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()  

color = 'tab:blue'
ax2.set_ylabel('sin', color=color)  
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout() 
plt.show()

标签: pythonmatplotlib

解决方案


推荐阅读