Python将瀑布图转换为Plotly

5
我正在使用Python中的waterfall_chart包创建瀑布图。该包主要在后端使用matplotlib,因此我尝试使用tls.mpl_to_plotly(mpl_fig)函数将matplotlib图形转换为plotly。但是在转换时,会出现错误。是否有一种方法可以将waterfall_chart转换为plotly,或者是否有一种直接在plotly中创建图表的简单方法?我看到了一些关于类似plotly中的图表的讨论,但这涉及到图表编号的相当手动编码。
您可以使用以下代码重新创建图表。
import waterfall_chart
import matplotlib.pyplot as plt
import plotly.tools as tls

a = ['sales','returns','credit fees','rebates','late charges','shipping']
b = [10,-30,-7.5,-25,95,-7]
mpl_fig = plt.figure()
waterfall_chart.plot(a, b)

plt.show()

瀑布图

但是当我尝试使用mpl_to_plotly()将其转换为plotly时,出现错误:

plotly_fig = tls.mpl_to_plotly(mpl_fig)

ValueError: min() arg is an empty sequence

您可以在此处了解有关 waterfall_chart 包的详细信息:https://github.com/chrispaulca/waterfall/blob/master/waterfall_chart.py

2个回答

0
列表a的长度为6,列表b的长度为5。 Matplotlib拒绝显示空数组、列表或任何东西。 解决方法是向b中添加一个数字或0,或者在代码中添加一个if语句,以避免Matplotlib获取到空序列。

0

我的回答涉及以下内容

[...] 或者有没有一种直接在plotly中创建图表的简单方法?


使用更新版本的plotly,您可以使用plotly.graph_objs.Waterfall

以下是一个基本示例,使用离线Jupyter Notebook中的iplot设置您的数据样本:

图表:

enter image description here

代码:

# imports
import plotly
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
from IPython.core.display import display, HTML
import plotly.figure_factory as ff
import plotly.graph_objs as go
import pandas as pd
import numpy as np

# setup
display(HTML("<style>.container { width:35% !important; } .widget-select > select {background-color: gainsboro;}</style>"))
init_notebook_mode(connected=True)
np.random.seed(1)

import plotly.offline as py
import plotly.graph_objs as go
py.init_notebook_mode(connected = False)

# your values
a = ['sales','returns','credit fees','rebates','late charges','shipping']
b = [10,-30,-7.5,-25,95,-7]

# waterfall trace
trace = go.Waterfall(
     x = a, 
    textposition = "outside", 
    text = [str(elem) for elem in b], 
    y = b, 
    connector = {"line":{"color":"rgb(63, 63, 63)"}}, 
)

layout = go.Layout(
        title = "Waterfall chart, plotly version 3.9.0", 
        showlegend = True
)

iplot(go.Figure([trace], layout))

使用以下命令检查您的版本:

import plotly
plotly.__version__

使用cmd控制台更新您的版本:

pip install plotly --upgrade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接