Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烛台图表添加轨迹(模式=“标记”)给出错误的输出_Python_Plotly_Plotly Dash_Candlestick Chart - Fatal编程技术网

Python 烛台图表添加轨迹(模式=“标记”)给出错误的输出

Python 烛台图表添加轨迹(模式=“标记”)给出错误的输出,python,plotly,plotly-dash,candlestick-chart,Python,Plotly,Plotly Dash,Candlestick Chart,我目前正在用dash和plotly构建一个财务仪表板。我将以下烛台图表添加到我的仪表板: candlestick_chart = go.Figure(data=[go.Candlestick(x=financial_data["Date"], open=financial_data['Open'], high=financ

我目前正在用dash和plotly构建一个财务仪表板。我将以下烛台图表添加到我的仪表板:

    candlestick_chart = go.Figure(data=[go.Candlestick(x=financial_data["Date"],
                                     open=financial_data['Open'],
                                     high=financial_data['High'],
                                     low=financial_data['Low'],
                                     close=financial_data['Close'])])
它返回预期结果:

我希望能够突出显示特定的烛台(例如,使用记号笔)

我试图通过
add_trace
函数和以下代码实现这一点:

    candlestick_chart.add_trace(
    go.Scatter(
        x=["2020-07-01"],
        y=["350"],
        mode="markers",
        marker=dict(symbol="6")

    )
)
但这破坏了图表

为什么会这样?我怎样才能解决这个问题

编辑:添加数据源

我从中获取数据,时间段设置为max

我通过以下方式分析了数据:

    start = "2000-01-01"
end = "2021-01-01"

# Get a pandas dataframe
datapath = ('D:\\Programmieren\\trading_bot\\etf_data\\SPY.csv')

financial_data = pd.read_csv(datapath,
                             parse_dates=True,
                             index_col=0)

financial_data= financial_data.loc[start:end]
# Process data
financial_data = financial_data["2020-06-01":"2021-01-01"]

financial_data.reset_index(inplace=True)
EDIT2:系统和版本

我的软件包有以下版本:

print(pd.__version__) # 1.2.3
print(plotly.__version__) # 4.14.3
我的工作是:

  • Windows 10 Home(64位)
  • Python 3.9
  • Python 3.8也不起作用

当我运行您的代码时,出现以下错误:

ValueError: 
Invalid value of type 'builtins.str' received for the 'symbol' property of scatter.marker
    Received value: '6'

The 'symbol' property is an enumeration that may be specified as:
  - One of the following enumeration values:
        [0, 'circle', 100, 'circle-open', 200, 'circle-dot', 300,
        'circle-open-dot', 1, 'square', 101, 'square-open', 201,
        'square-dot', 301, 'square-open-dot', 2, 'diamond', 102,
        'diamond-open', 202, 'diamond-dot', 302,
        'diamond-open-dot', 3, 'cross', 103, 'cross-open', 203,
        'cross-dot', 303, 'cross-open-dot', 4, 'x', 104, 'x-open',
        204, 'x-dot', 304, 'x-open-dot', 5, 'triangle-up', 105,
        'triangle-up-open', 205, 'triangle-up-dot', 305,
        'triangle-up-open-dot', 6, 'triangle-down', 106,
        'triangle-down-open', 206, 'triangle-down-dot', 306,
        'triangle-down-open-dot', 7, 'triangle-left', 107,
        'triangle-left-open', 207, 'triangle-left-dot', 307,
        'triangle-left-open-dot', 8, 'triangle-right', 108,
        'triangle-right-open', 208, 'triangle-right-dot', 308,
        'triangle-right-open-dot', 9, 'triangle-ne', 109,
        'triangle-ne-open', 209, 'triangle-ne-dot', 309,
        'triangle-ne-open-dot', 10, 'triangle-se', 110,
        'triangle-se-open', 210, 'triangle-se-dot', 310,
        'triangle-se-open-dot', 11, 'triangle-sw', 111,
        'triangle-sw-open', 211, 'triangle-sw-dot', 311,
        'triangle-sw-open-dot', 12, 'triangle-nw', 112,
        'triangle-nw-open', 212, 'triangle-nw-dot', 312,
        'triangle-nw-open-dot', 13, 'pentagon', 113,
        'pentagon-open', 213, 'pentagon-dot', 313,
        'pentagon-open-dot', 14, 'hexagon', 114, 'hexagon-open',
        214, 'hexagon-dot', 314, 'hexagon-open-dot', 15,
        'hexagon2', 115, 'hexagon2-open', 215, 'hexagon2-dot',
        315, 'hexagon2-open-dot', 16, 'octagon', 116,
        'octagon-open', 216, 'octagon-dot', 316,
        'octagon-open-dot', 17, 'star', 117, 'star-open', 217,
        'star-dot', 317, 'star-open-dot', 18, 'hexagram', 118,
        'hexagram-open', 218, 'hexagram-dot', 318,
        'hexagram-open-dot', 19, 'star-triangle-up', 119,
        'star-triangle-up-open', 219, 'star-triangle-up-dot', 319,
        'star-triangle-up-open-dot', 20, 'star-triangle-down',
        120, 'star-triangle-down-open', 220,
        'star-triangle-down-dot', 320,
        'star-triangle-down-open-dot', 21, 'star-square', 121,
        'star-square-open', 221, 'star-square-dot', 321,
        'star-square-open-dot', 22, 'star-diamond', 122,
        'star-diamond-open', 222, 'star-diamond-dot', 322,
        'star-diamond-open-dot', 23, 'diamond-tall', 123,
        'diamond-tall-open', 223, 'diamond-tall-dot', 323,
        'diamond-tall-open-dot', 24, 'diamond-wide', 124,
        'diamond-wide-open', 224, 'diamond-wide-dot', 324,
        'diamond-wide-open-dot', 25, 'hourglass', 125,
        'hourglass-open', 26, 'bowtie', 126, 'bowtie-open', 27,
        'circle-cross', 127, 'circle-cross-open', 28, 'circle-x',
        128, 'circle-x-open', 29, 'square-cross', 129,
        'square-cross-open', 30, 'square-x', 130, 'square-x-open',
        31, 'diamond-cross', 131, 'diamond-cross-open', 32,
        'diamond-x', 132, 'diamond-x-open', 33, 'cross-thin', 133,
        'cross-thin-open', 34, 'x-thin', 134, 'x-thin-open', 35,
        'asterisk', 135, 'asterisk-open', 36, 'hash', 136,
        'hash-open', 236, 'hash-dot', 336, 'hash-open-dot', 37,
        'y-up', 137, 'y-up-open', 38, 'y-down', 138,
        'y-down-open', 39, 'y-left', 139, 'y-left-open', 40,
        'y-right', 140, 'y-right-open', 41, 'line-ew', 141,
        'line-ew-open', 42, 'line-ns', 142, 'line-ns-open', 43,
        'line-ne', 143, 'line-ne-open', 44, 'line-nw', 144,
        'line-nw-open']
  - A tuple, list, or one-dimensional numpy array of the above
为了解决这个问题,我只是简单地给了
marker
值一个它指示的值,例如,我做了
marker=dict(symbol='triangle-down-open')
,它返回了这样一个图:

图表的代码为:

candlestick_chart = go.Figure(data=[go.Candlestick(x=financial_data["Date"],
                                 open=financial_data['Open'],
                                 high=financial_data['High'],
                                 low=financial_data['Low'],
                                 close=financial_data['Close'])])


candlestick_chart.add_trace(
    go.Scatter(
        x=["2020-07-01"],
        y=["350"],
        mode="markers",
        marker=dict(symbol='triangle-down-open')

    )
)

candlestick_chart.show()

运行您的代码时,出现以下错误:

ValueError: 
Invalid value of type 'builtins.str' received for the 'symbol' property of scatter.marker
    Received value: '6'

The 'symbol' property is an enumeration that may be specified as:
  - One of the following enumeration values:
        [0, 'circle', 100, 'circle-open', 200, 'circle-dot', 300,
        'circle-open-dot', 1, 'square', 101, 'square-open', 201,
        'square-dot', 301, 'square-open-dot', 2, 'diamond', 102,
        'diamond-open', 202, 'diamond-dot', 302,
        'diamond-open-dot', 3, 'cross', 103, 'cross-open', 203,
        'cross-dot', 303, 'cross-open-dot', 4, 'x', 104, 'x-open',
        204, 'x-dot', 304, 'x-open-dot', 5, 'triangle-up', 105,
        'triangle-up-open', 205, 'triangle-up-dot', 305,
        'triangle-up-open-dot', 6, 'triangle-down', 106,
        'triangle-down-open', 206, 'triangle-down-dot', 306,
        'triangle-down-open-dot', 7, 'triangle-left', 107,
        'triangle-left-open', 207, 'triangle-left-dot', 307,
        'triangle-left-open-dot', 8, 'triangle-right', 108,
        'triangle-right-open', 208, 'triangle-right-dot', 308,
        'triangle-right-open-dot', 9, 'triangle-ne', 109,
        'triangle-ne-open', 209, 'triangle-ne-dot', 309,
        'triangle-ne-open-dot', 10, 'triangle-se', 110,
        'triangle-se-open', 210, 'triangle-se-dot', 310,
        'triangle-se-open-dot', 11, 'triangle-sw', 111,
        'triangle-sw-open', 211, 'triangle-sw-dot', 311,
        'triangle-sw-open-dot', 12, 'triangle-nw', 112,
        'triangle-nw-open', 212, 'triangle-nw-dot', 312,
        'triangle-nw-open-dot', 13, 'pentagon', 113,
        'pentagon-open', 213, 'pentagon-dot', 313,
        'pentagon-open-dot', 14, 'hexagon', 114, 'hexagon-open',
        214, 'hexagon-dot', 314, 'hexagon-open-dot', 15,
        'hexagon2', 115, 'hexagon2-open', 215, 'hexagon2-dot',
        315, 'hexagon2-open-dot', 16, 'octagon', 116,
        'octagon-open', 216, 'octagon-dot', 316,
        'octagon-open-dot', 17, 'star', 117, 'star-open', 217,
        'star-dot', 317, 'star-open-dot', 18, 'hexagram', 118,
        'hexagram-open', 218, 'hexagram-dot', 318,
        'hexagram-open-dot', 19, 'star-triangle-up', 119,
        'star-triangle-up-open', 219, 'star-triangle-up-dot', 319,
        'star-triangle-up-open-dot', 20, 'star-triangle-down',
        120, 'star-triangle-down-open', 220,
        'star-triangle-down-dot', 320,
        'star-triangle-down-open-dot', 21, 'star-square', 121,
        'star-square-open', 221, 'star-square-dot', 321,
        'star-square-open-dot', 22, 'star-diamond', 122,
        'star-diamond-open', 222, 'star-diamond-dot', 322,
        'star-diamond-open-dot', 23, 'diamond-tall', 123,
        'diamond-tall-open', 223, 'diamond-tall-dot', 323,
        'diamond-tall-open-dot', 24, 'diamond-wide', 124,
        'diamond-wide-open', 224, 'diamond-wide-dot', 324,
        'diamond-wide-open-dot', 25, 'hourglass', 125,
        'hourglass-open', 26, 'bowtie', 126, 'bowtie-open', 27,
        'circle-cross', 127, 'circle-cross-open', 28, 'circle-x',
        128, 'circle-x-open', 29, 'square-cross', 129,
        'square-cross-open', 30, 'square-x', 130, 'square-x-open',
        31, 'diamond-cross', 131, 'diamond-cross-open', 32,
        'diamond-x', 132, 'diamond-x-open', 33, 'cross-thin', 133,
        'cross-thin-open', 34, 'x-thin', 134, 'x-thin-open', 35,
        'asterisk', 135, 'asterisk-open', 36, 'hash', 136,
        'hash-open', 236, 'hash-dot', 336, 'hash-open-dot', 37,
        'y-up', 137, 'y-up-open', 38, 'y-down', 138,
        'y-down-open', 39, 'y-left', 139, 'y-left-open', 40,
        'y-right', 140, 'y-right-open', 41, 'line-ew', 141,
        'line-ew-open', 42, 'line-ns', 142, 'line-ns-open', 43,
        'line-ne', 143, 'line-ne-open', 44, 'line-nw', 144,
        'line-nw-open']
  - A tuple, list, or one-dimensional numpy array of the above
为了解决这个问题,我只是简单地给了
marker
值一个它指示的值,例如,我做了
marker=dict(symbol='triangle-down-open')
,它返回了这样一个图:

图表的代码为:

candlestick_chart = go.Figure(data=[go.Candlestick(x=financial_data["Date"],
                                 open=financial_data['Open'],
                                 high=financial_data['High'],
                                 low=financial_data['Low'],
                                 close=financial_data['Close'])])


candlestick_chart.add_trace(
    go.Scatter(
        x=["2020-07-01"],
        y=["350"],
        mode="markers",
        marker=dict(symbol='triangle-down-open')

    )
)

candlestick_chart.show()
这可能被视为一个版本问题,但核心问题是您已将
y值
定义为具有
[“350”]
的字符串列表,而不是像以下中的
[350]
这样的数字:

go.Scatter(
        x=["2020-07-01"],
        y=["350"],
        mode="markers",
        marker=dict(symbol="6")

    )
)
不同版本的plotly对这一点的处理方式似乎有所不同。只需删除引号,即可将该值以数字形式绘图解释,从而生成以下结果:

用示例数据完成代码 这可能被视为一个版本问题,但核心问题是您已将
y值
定义为具有
[“350”]
的字符串列表,而不是像以下中的
[350]
这样的数字:

go.Scatter(
        x=["2020-07-01"],
        y=["350"],
        mode="markers",
        marker=dict(symbol="6")

    )
)
不同版本的plotly对这一点的处理方式似乎有所不同。只需删除引号,即可将该值以数字形式绘图解释,从而生成以下结果:

用示例数据完成代码

marker=dict(symbol=“6”)
的确切用途是什么,因为当我尝试使用它调试您的问题时,它对我不起作用。您的问题也不是最低限度的可再现性,因此尽管我能够让代码为我的样本数据工作,但没有遇到您所遇到的问题,仍然有可能它无法解决您的问题。如果单击图像,您应该会看到在这种情况下,烛台由箭头高亮显示,而不是默认的圆圈()。删除此行不会更改结果。我应该补充什么才能使我的问题变得可复制?你应该添加一种简单的方法来获取你正在使用的数据,无论是文件还是链接到你用来获取数据的任何来源。我的编辑应该为你提供所有信息。@Ph.lpp实际上,不是。你的编辑显示了一个数据源,但是,绝对无法知道这是否是您用于生成体形的数据。您的编辑也无法澄清与
go.Scatter()
一起使用的数据类型。在我看来,您可能使用了
string
类型的数据。要生成一个可正确再现的问题,请提供一个完整的数据片段,其中包含您的导入和数据,例如,
marker=dict(symbol=“6”)
的确切用法是什么,因为当我尝试使用它调试您的问题时,它对我不起作用。您的问题也不是最低限度的可再现性,因此尽管我能够让代码为我的样本数据工作,但没有遇到您所遇到的问题,仍然有可能它无法解决您的问题。如果单击图像,您应该会看到在这种情况下,烛台由箭头高亮显示,而不是默认的圆圈()。删除此行不会更改结果。我应该补充什么才能使我的问题变得可复制?你应该添加一种简单的方法来获取你正在使用的数据,无论是文件还是链接到你用来获取数据的任何来源。我的编辑应该为你提供所有信息。@Ph.lpp实际上,不是。你的编辑显示了一个数据源,但是,绝对无法知道这是否是您用于生成体形的数据。您的编辑也无法澄清与
go.Scatter()
一起使用的数据类型。在我看来,您可能使用了
string
类型的数据。若要生成一个可正确再现的问题,请提供一个完整的数据片段以及您的导入和数据,例如,感谢您的建议。但即使在没有其他代码的单独文件中,这对我也不起作用。运行它时会发生什么?您有最新版本的plotly吗?它运行时没有错误,绘图看起来与以前一样(第二张图片),但缩放比例略有不同,因为它不会与Dash和我的其他绘图一起显示。版本在第二次编辑中。这是一个与版本相关的问题,我使用的是
4.9.0
,它工作正常,但是当更改为
4.14.3
时,它不工作。谢谢。安装4.9.0修复了我的建议问题。但即使在没有其他代码的单独文件中,这对我也不起作用。运行它时会发生什么?您有最新版本的plotly吗?它运行时没有错误,绘图看起来与以前一样(第二张图片),但缩放比例略有不同,因为它不会与Dash和我的其他绘图一起显示。版本在第二次编辑中。这是一个与版本相关的问题,我使用的是
4.9.0
,工作正常,但当更改为