For Loop on Plotly Python
For Loop on Plotly Python
我正在尝试更换
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 2, 1)
使用 for 循环代码
totalPlot = 2
x = ['trace%s'%(item + 1) for item in range(totalPlot)]
y = [(item + 1) for item in range(totalPlot)]
z = totalPlot * [1]
for i, j, k in zip(x, y, z):
fig.append_trace(i, j, k)
这样随着我添加更多数字,它会更具可扩展性。但是,循环代码不断返回“类型错误:'str' 对象不支持项目分配”。我做错了什么?
这是与 Plotly 中的代码类似的代码:
from plotly import tools
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Scatter(
x=[1, 2, 3],
y=[4, 5, 6]
)
trace2 = go.Scatter(
x=[20, 30, 40],
y=[50, 60, 70],
)
fig = tools.make_subplots(rows=2, cols=1)
# ----- Loop here ------- START
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 2, 1)
# ----- Loop here ------- END
fig['layout'].update(height=600, width=600, title='i <3 subplots')
py.iplot(fig, filename='make-subplots')
在这段代码中,trace1
是某种类似数组的数据结构:
trace1 = go.Scatter(
x=[1, 2, 3],
y=[4, 5, 6]
)
所以我想当你调用 fig.append_trace(trace1, 1, 1)
时,它会向这个类似数组的结构添加一个元素,即第一个参数。
但是在您的重新实现中,您已将跟踪数据转换为字符串:
x = ['trace%s'%(item + 1) for item in range(totalPlot)]
...
for i, j, k in zip(x, y, z):
fig.append_trace(i, j, k)
这里 i
是 x
的一个元素,它又是一个像 'trace%s'%(item + 1)
这样的字符串。但是您不能将元素附加到字符串。 Python 字符串是不可变的。因此,当您调用 append_trace
时,您自然会在此处收到有关无法使用字符串执行所需操作的错误。
我正在尝试更换
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 2, 1)
使用 for 循环代码
totalPlot = 2
x = ['trace%s'%(item + 1) for item in range(totalPlot)]
y = [(item + 1) for item in range(totalPlot)]
z = totalPlot * [1]
for i, j, k in zip(x, y, z):
fig.append_trace(i, j, k)
这样随着我添加更多数字,它会更具可扩展性。但是,循环代码不断返回“类型错误:'str' 对象不支持项目分配”。我做错了什么?
这是与 Plotly 中的代码类似的代码:
from plotly import tools
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Scatter(
x=[1, 2, 3],
y=[4, 5, 6]
)
trace2 = go.Scatter(
x=[20, 30, 40],
y=[50, 60, 70],
)
fig = tools.make_subplots(rows=2, cols=1)
# ----- Loop here ------- START
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 2, 1)
# ----- Loop here ------- END
fig['layout'].update(height=600, width=600, title='i <3 subplots')
py.iplot(fig, filename='make-subplots')
在这段代码中,trace1
是某种类似数组的数据结构:
trace1 = go.Scatter(
x=[1, 2, 3],
y=[4, 5, 6]
)
所以我想当你调用 fig.append_trace(trace1, 1, 1)
时,它会向这个类似数组的结构添加一个元素,即第一个参数。
但是在您的重新实现中,您已将跟踪数据转换为字符串:
x = ['trace%s'%(item + 1) for item in range(totalPlot)]
...
for i, j, k in zip(x, y, z):
fig.append_trace(i, j, k)
这里 i
是 x
的一个元素,它又是一个像 'trace%s'%(item + 1)
这样的字符串。但是您不能将元素附加到字符串。 Python 字符串是不可变的。因此,当您调用 append_trace
时,您自然会在此处收到有关无法使用字符串执行所需操作的错误。