python - 来自数据框的 X 轴数据
问题描述
我有一些要绘制的数据。我正在使用下面的代码:
import pandas_datareader as web
crypto_currency = 'BTC'
against_currency = 'USD'
start, end = dt.datetime(2012,1,1), dt.datetime.now()
df = web.DataReader(f'{crypto_currency}-{against_currency}', 'yahoo', start, end)
df.head()
数据框看起来像这样,
例如,如果我想绘制接近值,我会执行以下操作:
import seaborn as sns; sns.set(style="whitegrid")
import matplotlib.pyplot as plt
close_values = df.filter(['Close']).values
plt.figure(figsize=(20,8))
plt.plot(close_values, label=f'Close values')
plt.xlim(0, len(close_values))
plt.title(f'{crypto_currency}-{against_currency} close data')
plt.legend()
plt.show()
图表如下所示:
没关系,但我想在 X 轴上显示日期。我以为我只需要从索引中获取日期值并将它们添加为 X 轴,但这是错误的。我的编码是错误的还是在概念上是错误的?我知道这应该很容易,但我不知道该怎么做。
解决方案
由于您使用的是Date
as 索引,因此请立即绘制df['Close']
。
import seaborn as sns; sns.set(style="whitegrid")
import matplotlib.pyplot as plt
plt.figure(figsize=(20,8))
df['Close'].plot(title=f'{crypto_currency}-{against_currency} close data', label='Close values')
plt.legend(loc='upper left')
plt.xlabel('')
plt.show()
如果您使用Date
数据作为索引,则可以按年、按月和按天进行搜索。
new_df = df['2020']
new_df
# df['2020-01':'2020-12'] --monthly
# df['2020-01-01':'2020-12-31'] --daily
plt.figure(figsize=(20,8))
new_df['Close'].plot(title=f'2020 {crypto_currency}-{against_currency} close data')
plt.xlabel('')
plt.show()
推荐阅读
- java - 如何测试基于 SSLEngine 的 TLS 实现?
- sql - 有没有办法创建可以在共享驱动器上访问的数据库?
- python - pandas df.fillna - 在外部连接后用正确的值填充 NaN
- sql - 从有点复杂的 SQL 语句到preparedStatement
- django - 带注释的 django 查询集在序列化期间被忽略
- python - 使用正则表达式解析文本行上的字符
- reactjs - google-maps-react infoWindow onChange 问题
- python - 在电报机器人上发送本地托管的照片
- tomcat - Tomcat - 多个用户获得相同的 sessionID
- excel - 使用 VBA 超时后打开 EXE 应用程序