- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
让我举个例子。让我们采用显示的简单线图 here , Plotly 用户指南中的第一张图:
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
trace1 = go.Scatter(x=[1,2,3], y=[4,5,6], marker={'color': 'red', 'symbol': 104, 'size': 10},
mode="markers+lines", text=["one","two","three"], name='1st Trace')
data=go.Data([trace1])
layout=go.Layout(title="First Plot", xaxis={'title':'x1'}, yaxis={'title':'x2'})
figure1=go.Figure(data=data,layout=layout)
init_notebook_mode(connected=True)
iplot(figure1)
现在,假设我想将 x-tick 标签更新为 'A', 'B', 'C'
并将 ytick 标签更新为 'E', 'F', 'G'
。我可以通过像这样更新图形来做到这一点:
figure1['data'][0]['x']=['A', 'B', 'C']
figure1['data'][0]['y']=['E', 'F', 'G']
iplot(figure1)
到目前为止一切顺利。但是,假设我首先使用 matplotlib 绘制图形,然后像这样转换为 plotly:
import matplotlib.pyplot as plt
import plotly.tools as tls
plt.plot([1,2,3], [4,5,6], 'r+-', markersize=10)
plt.xlabel('x2')
plt.ylabel('y2')
mpl_fig = plt.gcf()
figure2 = tls.mpl_to_plotly(mpl_fig)
init_notebook_mode(connected=True)
iplot(figure2)
例如,当您用来绘制图形的库设计为仅适用于 matplotlib(或者最大可能是 seaborn)时,这是相关的。但是您想使绘图动态/交互并在绘图中使用它们。
这一次,如果我尝试以与之前完全相同的方式更新图形,我会得到一个空白图形!
figure2['data'][0]['x']=['A', 'B', 'C']
figure2['data'][0]['y']=['E', 'F', 'G']
iplot(figure2)
不仅是一张空白图,xtick标签和ytick标签也没有改变。
当我深入查看 figure1['data'][0]['x']
中包含的内容时,我发现它是一个元组:
当我检查 figure2['data'][0]['x']
中包含的内容时,它也是完全相同的元组:
同样适用于 figure1['data'][0]['y']
和 figure2['data'][0]['y']
-它们都包含元组 ('E', 'F', 'G')
。
所以,这是怎么回事?为什么 figure2
在更新刻度标签后没有被绘制?我该如何解决?
最佳答案
到目前为止,我通过 self 修修补补找到的解决方法是基本上用空白布局替换布局。出于某种原因,从 matplotlib 转换的 plotly graph 的布局似乎导致无法反射(reflect)对图形的更新。将布局设为空白后(然后,如果需要,向其中添加内容,例如标题和轴标签,如下所示),它似乎工作正常:
figure2['layout'] = {'title':'First plot', 'xaxis':{'title':'x2'}, 'yaxis':{'title':'y2'}}
figure2['data'][0]['x']=['A', 'B', 'C']
figure2['data'][0]['y']=['E', 'F', 'G']
iplot(figure2)
关于python - 在 Plotly 中更改/更新 xtick 标签和 ytick 标签不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55351080/
我正在使用seaborn 绘制热图。但如果 yticks 太多,其中一些将被自动隐藏。结果如下: 如您所见,yticks 只显示 1, 3, 5, 7.... 31, 33我怎样才能让seaborn或
下面是从 MultiIndex 数据框生成的 seaborn 热图: import numpy as np import pandas as pd import seaborn as sns year
我想绘制一些数据并在右侧添加一个 ytick,但是当我这样做时,左侧的刻度消失了,我想保留它。有人能帮助我吗 ?我看过其他帖子,但他们都在使用 ax.命令,我不熟悉这个,我只使用 plt.职能。 我使
我一直在尝试找到一种以表格形式显示 3 元素列表的方法。我真正关心的是绘制表格。我想为图中的每个 ylabel 绘制一个 1by3 表。 以下是我到目前为止所拥有的。如果我能让每个表实例都显示出来,我
我刚刚开始了解 Python 库 pandas 和 matplotlib。你能举例说明如何使用 matplotlib 生成与此类似的图吗: 在右侧的 y 轴上,列出了数据实例的名称。下面的 x 轴是与
这个问题在这里已经有了答案: How to remove relative shift in matplotlib axis (2 个答案) 关闭 8 年前。 我正在尝试从 pandas dataf
我是 matplotlib 的新手,正在处理图表,当我使用 plt.ticks 时,它不会显示我作为 np 数组提供的 yticks,而是在 y 轴上显示相同的旧图表值。 我尝试了与此相关的堆栈溢出问
我不太明白您应该如何传递参数以在 matplotlib 中创建水平条形图。我只是想模仿我在这个示例代码中看到的... https://pythonspot.com/matplotlib-bar-cha
我试图在条形图上绘制折线图,但刻度线和点的实际位置均未对齐。我希望它们能够保持一致。 (请注意,我将在另一侧类似地(但相反)绘制另一组数据,因此是子图。) 这是我到目前为止所拥有的 import
我偶然发现了 matlab 的 xticklabels 和 yticklabels 行为的不直观行为。我将 xticklabels 的输出存储到一个变量中,修改它,然后再次应用它并注意标签现在已经移动
我使用 matplotlib.pyplot 创建了一个子图。即使我使用以下方法将刻度标签设置为空: plt.xticks([ ]) plt.yticks([ ]) 如何删除这些内容?我是 Python
这是一个代码片段 tips = sns.load_dataset("tips") g = sns.FacetGrid(tips, col = 'time') g = g.map(plt.hist, "
我有一个包含 200 个键和值的 dict,可以生成此图。 我还计算了这些值的平均值并绘制了它。我希望平均值与线条颜色相同。我使用的代码是这样的: with open('path_to_json/va
Download Zip with signal.csv 我可以创建一个 psd 图,如下所示: import pandas as pd import matplotlib.pyplot as plt
我有一个多图图形,使用此命令(所有子图共享 x 和 y 轴): fig, axes = plt.subplots(nrows=1, ncols=4, sharex=True, sharey=True)
我在 pyplot 上有两个箱线图,我想将 yticks 从“1”和“2”更改为两个字符串“Post Index”和“Pre Index”。这将如何完成? import numpy as np imp
我已经完成了雷达图,看起来几乎是我想要的样子。但是,由于绘图上有很多值,我想修改 ylabels/yticks 的对齐方式。 我在给定角度的一行中创建具有正确值的 ylabels/yticks 没有问
我一直在尝试在 Matplotlib 上绘制数据,但我似乎有重叠的 YTicks。我不确定如何调整它们。 代码 import matplotlib.pyplot as plt data= [42704
我有一个根据此创建的数据透视表:Color mapping of data on a date vs time plot并用 imshow() 绘制它。我想使用数据透视表的索引和列作为 yticks
我在图中有三个轴,我想从所有轴中删除 xtick 和 ytick。我写了下面的代码,但它只适用于当前轴,而不是所有轴: set(gca,'xtick',[],'ytick',[]); 如何从所有轴上删
我是一名优秀的程序员,十分优秀!