plotly.offline.iplot给出一个大的空白字段作为其输出 - 为什么?

时间:2018-02-01 10:10:41

标签: python python-3.x jupyter-notebook plotly

我正在尝试在Jupyter笔记本中创建一个Sankey图表,我的代码基于the first example shown here

我最终得到了这个,我可以运行而不会出现任何错误:

axios

csv文件看起来像这样:

import numpy as npy
import pandas as pd
import plotly as ply

ply.offline.init_notebook_mode(connected=True)

df = pd.read_csv('C:\\Users\\a245401\\Desktop\\Test.csv',sep=';')

print(df.head())
print(ply.__version__)

data_trace = dict(
    type='sankey',
    domain = dict(
      x =  [0,1],
      y =  [0,1]
    ),
    orientation = "h",
    valueformat = ".0f",
    node = dict(
      pad = 10,
      thickness = 30,
      line = dict(
        color = "black",
        width = 0.5
      ),
      label =  df['Node, Label'].dropna(axis=0, how='any'),
      color = df['Color']
    ),
    link = dict(
      source = df['Source'].dropna(axis=0, how='any'),
      target = df['Target'].dropna(axis=0, how='any'),
      value = df['Value'].dropna(axis=0, how='any'),
  )
)
print(data_trace)

layout =  dict(
    title = "Test",
    height = 772,
    width = 950,
    font = dict(
      size = 10
    ),    
)
print(layout)

fig = dict(data=[data_trace], layout=layout)
ply.offline.iplot(fig, filename='Test')

似乎运行正常,乍一看各种输出正好看,但Source;Target;Value;Color;Node, Label 0;2;2958.5;#262C46;Test 1 0;2;236.7;#262C46;Test 2 0;2;1033.4;#262C46;Test 3 0;2;58.8;#262C46;Test 4 0;2;5.2;#262C46;Test 5 0;2;9.4;#262C46;Test 6 0;2;3.4;#262C46;Test 7 的最终输出只显示一个大的空白字段: enter image description here 在运行笔记本中的所有单元格后,终端看起来像这样: enter image description here

有人可以指点我到哪里错了吗?

10 个答案:

答案 0 :(得分:14)

过去,我在Jupyter中遇到过类似的离线问题 - 有时候,为什么这些情节不能出现时会出现令人惊讶的不一致。从增加的数据速率限制开始可能值得一试。

jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10

答案 1 :(得分:2)

对我来说,帮助将笔记本更改为Trusted(这启用了Javascript,并给出了将图形构建到jupyter笔记本中的绘图方法。)

您可以在这里找到此选项

In upper right side of notebook

答案 2 :(得分:1)

使用Google Colab时,请包含代码段-

Animated.View

或将整体导入语句用作-

const Screen = () => {
  return <View style={{ flex: 1}}>
           <View style={{flex: 1}}>
             //actual screen content
           </View>
           <Animated.View // header
             ...props
           ></Animated.View>
         </View>

这会将渲染设置为Colab样式,并显示绘图。

希望这会有所帮助。

答案 3 :(得分:1)

我尝试了这里建议的所有解决方案,但没有一个对我有用。解决此问题的原因是添加了

import plotly.io as pio
pio.renderers.default='notebook'

,并且也根据建议here使用fig.show("notebook")而不是简单地使用fig.show()。

答案 4 :(得分:0)

quickstart in the README

这会显示一个数字,而这里的其他答案都对我没有帮助:

import plotly.graph_objs as go
fig = go.FigureWidget()
# Display an empty figure
fig

这(在新单元格中)用条形图和折线图修改了上面的图:

# Add a scatter chart
fig.add_scatter(y=[2, 1, 4, 3])
# Add a bar chart
fig.add_bar(y=[1, 4, 3, 2])
# Add a title
fig.layout.title = 'Hello FigureWidget'

如果这不起作用,请确保安装正确,例如pip install --user --upgrade plotly(如果您已安装pip)

答案 5 :(得分:0)

如果这些答案都不对您有用。试试这个

只需在具有管理员权限的conda提示符中执行此操作

 /*  What I've already tried:
 x Instead of using "" - used those ''
 x Tried using the div ID 
 x I added "var" infront of the document.getElement(...) and removed it again
 x Tried document.getElement(..).style.Texttransform.color=".." */





/*The HTML Part*/

<div id= "question7">

<form>
<p> Question 7? </p> 

<p><input type = "radio" id = "wrong" name= "question7a" value = "Yes">
 Yes a b c <br></p>

<p><input type = "radio" id = "wrong" name= "question7b" value = "No"
>No, a b c <br></p>

</form>
</div>



/* The Button */

<div id= "send" >

<form>
<input id="change_button" type="button" value="Change" 
onClick="change();"/>

</form>
</div>




/*The Script Part*/

<script>
function change() {

document.getElementbyID("wrong").style.color ="red";
document.getElementbyID("right").style.color ="green";

}
</script>

您需要拥有pip install pip --upgrade conda upgrade notebook or pip install notebook --upgrade conda install -c conda-forge ipywidgets or pip install ipywidgets jupyter notebook的最新版本。

答案 6 :(得分:0)

我可以使用jupyter notebook服务器获得正确的显示(没有任何其他选项),但出现空白块 使用 jupyter lab 服务器。相关版本信息:

$ jupyter lab --version
0.35.5
$ jupyter notebook --version
5.7.8
$ python -c "import plotly; print(plotly.__version__)"
3.10.0

因此,对于使用 JupyterLab 的用户,要在 JupyterLab 中正确显示离线的 plotly 图,我们需要安装plotly-extension和以下命令(以下内容摘自related answer):

$ jupyter labextension install @jupyterlab/plotly-extension
$ jupyter labextension list 
$ jupyter lab build

答案 7 :(得分:0)

我自己也遇到了类似的问题,有着森伯图。空白图是由于无效数据所致。我本来希望在运行时遇到错误,但是在极少数情况下,似乎没有错误出现,而是显示了空白图。

因此,请检查您的数据有效性,或使用plotly doc上提供的虚拟数据进行测试,以测试问题是否出自数据或plotly / notebook界面。

答案 8 :(得分:0)

上述一些方法确实对我有用。但是我根据这个discussionofficial troubleshooting guide不合时宜地解决了这种问题。

  • 第 1 步: 关闭您的 jupyter 实验室。然后,卸载 plotly 和一些扩展。
$ jupyter lab build
  • 第 2 步:打开终端 从与启动 JupyterLab 相同的环境以重建 jupyter 实验室。
$ conda install plotly
$ jupyter labextension install jupyterlab-plotly
$ jupyter labextension install plotlywidget
  • 第 3 步:重新安装具有相同版本
  • 的 plotly 和 jupyter 实验室扩展
jupyter lab

以上步骤在 jupyter notebook 中对我来说效果很好。我认为我们可以在 StatefulSet 中尝试相同的程序。

答案 9 :(得分:0)

在我这边,罪魁祸首是我在 Firefox 上使用的“Darker Jupyter”插件。