我正在尝试用烛台创建一个简单的图。为此,我从雅虎获取数据并使用功能烛台 2_ohlc 绘制它。目标是使用 jpg 文件导出图像。
这是我正在使用的代码:
from pandas_datareader import data
import matplotlib.pyplot as plt
from mpl_finance import candlestick2_ohlc
import matplotlib.dates as mdates
import fix_yahoo_finance as yf
import datetime
start = datetime.date(2018, 1, 1)
end = datetime.date.today()
aapl = yf.download("AAPL",start,end)
aapl.reset_index(inplace=True)
aapl['Date'] = aapl.index.map(mdates.date2num)
fig, ax = plt.subplots()
plt.xlabel("Date")
plt.ylabel("Price")
candlestick2_ohlc(ax, aapl.Open, aapl.High, aapl.Low, aapl.Close, width=1, colorup='g')
plt.savefig('my_figure.png')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是:还有另一种简单的方法吗?你能给我举个例子来处理财务数据吗?我通常在 R 中使用 quantmod。
第二个问题是:在我的示例中,X 轴中没有日期。我该怎么做才能在 X 轴中显示带有日期的图?我应该将 Date 转换为 AX 格式,但我不知道一种简单的方法。
谢谢
我正在尝试使用命令 !pip install psutil 安装 lib psutil。当我运行这段代码时,我得到了这个
Requirement already satisfied: psutil in /opt/conda/lib/python3.6/site-packages (5.4.8)
Run Code Online (Sandbox Code Playgroud)
之后,我尝试运行此代码:
from plotly.offline import iplot, init_notebook_mode
import plotly.graph_objs as go
import plotly.io as pio
import os
import numpy as np
init_notebook_mode(connected=True)
N = 100
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sz = np.random.rand(N)*30
fig = go.Figure()
fig.add_scatter(x=x,
y=y,
mode='markers',
marker={'size': sz,
'color': colors,
'opacity': 0.6,
'colorscale': 'Viridis'
});
iplot(fig)
pio.write_image(fig, 'fig1.png')
Run Code Online (Sandbox Code Playgroud)
它有效!但是在代码的最后,当我尝试保存图片时,出现了这个错误:
ValueError: Image generation requires the psutil package.
Install using pip:
$ …Run Code Online (Sandbox Code Playgroud)