gpt4 book ai didi

python - 无法将第二个图添加到对数变换图

转载 作者:行者123 更新时间:2023-12-01 01:38:13 25 4
gpt4 key购买 nike

根据下面的代码,绘制历史价格数据的对数转换效果很好,但是当将任何第二个图(例如收盘价)添加到图中时,对数转换将绘制为 ts=0 ?!

代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plot

df = pd.read_csv('historical_price_data.csv')
df = df[::-1]
df['Date'] = pd.to_datetime(df.Date, infer_datetime_format=True)

# Set index to Date returns KeyError: "['Date'] not in index"
# df.set_index('Date', inplace=True)
df.sort_index(inplace=True)

# Log Transform
log_transform = df['Close']
df['log'] = np.log(log_transform)

# Log transform plots fine by itself
ax = df[['Date', 'log']].plot(figsize=(14, 7), x='Date')

# Adding another plot to the figure results in log_transform being set to 0 !
ax = df[['Date', 'Close']].plot(figsize=(14, 7), x='Date', ax=ax)

plot.show()

Log Transformation plots by itself

Adding 2nd plot breaks Log Transformation plot

请注意,使用单个 loc 而不是 2 个 loc 绘制它们会导致相同的问题,即日志转换线被压缩为 0:

ax = df[['Date', 'log', 'Close']].plot(x='Date')

最佳答案

对数转换后的数据比原始数据小几个数量级(根据定义几乎),因此它在绘图上在视觉上是折叠的:关闭峰值位于大约20000 ,而 log 峰值约为 10

在同一绘图上将原始数据与对数变换进行比较几乎没有意义。

如果您解决了索引问题,请使用以下方法在单独的图上绘制:

df['log'] = np.log(df['Close'])
df[['Close', 'log']].plot(figsize=(14, 7), subplots=True)

关于python - 无法将第二个图添加到对数变换图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com