python - 如何将具有不同数量数据点的 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()
解决方案
推荐阅读
- laravel - Laravel:在API中捕获路由未定义的异常
- angular - 将 Angular 项目制作为可执行文件的最佳方法是什么?
- php - 如何将 instanceof 运算符与抽象类一起使用?
- flutter - 改变'未来
' 为条件转换为静态类型 'bool' - node.js - 有没有办法在 AWS Lambda 中修改环境变量?
- php - UPSERT BigQuery
- html - 字段的数据验证
- javascript - 在引导标记字段中复制粘贴电子邮件在 IE 中不起作用
- android - Firebase 云消息推送通知在 Android Kitkat 上不起作用
- drupal-8 - 在我的 drupal 站点上安装 drush 时,drush 将显示错误