首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python蜱标签

Python蜱标签
EN

Stack Overflow用户
提问于 2016-03-17 18:03:25
回答 2查看 2.7K关注 0票数 2

我是新的bokeh和试图绘制股票数据在一个线图,X轴应该是日期和y轴将是股票的收盘价。

下面是我的代码示例:

代码语言:javascript
复制
data = pd.DataFrame({'Symbol' : ['AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD',],
                     'Previous_Close' : [10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,],
                     'Date' : pd.to_datetime(['01/01/16', '01/01/16', '01/01/16', '01/02/16', '01/02/16', '01/02/16', '01/03/16', '01/03/16', '01/03/16', '01/04/16',
                                            '01/04/16', '01/04/16', '01/05/16', '01/05/16', '01/05/16', '01/06/16', '01/06/16', '01/06/16'], format = '%m/%d/%y')})
Symbols = [sym for sym in data.Symbol.unique()]
Dates = [date for date in data.Date.unique()]
format_dates = [date.strftime('%b%d_%y') for date in dates]
colors = ['Darkred', 'Orange', 'Navy']

output_notebook()

TOOLS = ['hover','pan','box_zoom','resize', 'save', 'reset']
# CREATE FIGURE
p = figure(width = 800, height = 600, tools = TOOLS)

cnum = 0
# PLOT
for sym in Symbols:
    # plot stock closing price
    p.line(range(len(dates)), data[data.Symbol==sym].Previous_Close, color = colors[cnum])
    # add stock symbol as text label to end of line
    p.text(len(Symbols), data[data.Symbol==sym].Previous_Close.iloc[-1], [sym],
           text_color = colors[cnum], text_font_size = '10pt')
    cnum +=1
show(p)

很明显,数据是在这里编出来的,但想法是一样的。我想要的只是将x勾标签设置为格式化的日期名称。在派特洛特里,我只想做:

代码语言:javascript
复制
ax.set_xticklables(format_dates)
axis()

我尝试过将x_axis_type设置为“日期时间”,但这只给了我毫秒的时间。我尝试过使用DateTimeFormatter(),但要么我不知道如何使用它,要么它无法工作(可能是前者)。

我尝试过的事情(RE回答):

这将x轴更改为毫秒:P=数字(宽度= 800,高度= 600,x_ axis _type='datetime',tools = TOOLS)

代码语言:javascript
复制
cnum = 0
# PLOT
for sym in Symbols:
    # NO CHANGE TO X ARG
    p.line(range(len(dates)), data[data.Symbol==sym].Previous_Close, color = colors[cnum])

这将x标记从1970年改为几十年:P=数字(宽度= 800,高度= 600,x_axis_type='datetime',tools = TOOLS)

代码语言:javascript
复制
cnum = 0
# PLOT
for sym in Symbols:
    # CHANGE X ARG TO DATETIME DATES
    p.line(dates, data[data.Symbol==sym].Previous_Close, color = colors[cnum])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-18 17:42:46

看起来你的熊猫索引给你带来了麻烦。我认为这个代码应该有效:

代码语言:javascript
复制
import numpy as np
import pandas as pd
from bokeh.plotting import figure, output_file, show

data = pd.DataFrame({'Symbol' : ['AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD','AMBA','FB','WWD',],
                     'Previous_Close' : [10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,],
                     'Date' : pd.to_datetime(['01/01/16', '01/01/16', '01/01/16', '01/02/16', '01/02/16', '01/02/16', '01/03/16', '01/03/16', '01/03/16', '01/04/16', '01/04/16', '01/04/16', '01/05/16', '01/05/16', '01/05/16', '01/06/16', '01/06/16', '01/06/16'], format = '%m/%d/%y')})

symbols = [sym for sym in data.Symbol.unique()]
dates = [date for date in data.Date.unique()]
dates.sort()
lastDate = dates[-1]
colors = ['Darkred', 'Orange', 'Navy']

output_notebook()

TOOLS = ['hover','pan','box_zoom','resize', 'save', 'reset']
# CREATE FIGURE
p = figure(width = 800, height = 600, tools = TOOLS, x_axis_type="datetime")

# PLOT
for cnum, sym in enumerate(symbols):
    # plot stock closing price
    p.line(data[data.Symbol==sym].Date.values, data[data.Symbol==sym].Previous_Close.values, color = colors[cnum])

p.text(data[data.Date==lastDate].Date.values, data[data.Date==lastDate].Previous_Close.values, data[data.Date==lastDate].Symbol.values, text_color = colors, text_font_size = '10pt')

show(p)

这就是输出的样子:

票数 1
EN

Stack Overflow用户

发布于 2016-03-17 19:10:04

用途:

代码语言:javascript
复制
p = figure(width = 800, height = 600, x_axis_type='datetime', tools = TOOLS)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36068380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档