密谋:如何在子图上添加边框和边标,并同步平移? [英] Plotly: How to add borders and sidelabels to subplots, and syncronize panning?

查看:123
本文介绍了密谋:如何在子图上添加边框和边标,并同步平移?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下图是我尝试在Python中使用Plotly(位于最底部的代码)进行2x2绘图的情况.

The following graph is my attempt to use Plotly in Python (code at the very bottom) to do 2x2 plot.

我正在尝试改善图表,但似乎无法执行以下操作:

I am trying to improve the graph but I can't seem to do the following:

  1. 每个子图上的边界
  2. 在所有绘图上同步平移和缩放.尽管我正在使用shared_xaxes和shared_yaxes,但它仅适用于子图的行和列.因此,如果我平移左下图,则右上图将保持不变.
  3. 用于标记子图的侧面标签.请参阅,例如

任何帮助将不胜感激.下面是到目前为止的代码.

Any help would be much appreciated. Below is my code so far.

import plotly.offline as poff
import plotly.tools as tls

x = list(range(10,20))
y = x
y1 = [10-i for i in x]
y2 = [abs(i-5) for i in x]
y3 = [abs(2*i- 5) for i in x]

fig = tls.make_subplots(rows=2, cols=2, shared_xaxes=True, shared_yaxes=True,
                        vertical_spacing=0.01,
                        horizontal_spacing=0.01, print_grid=True)
fig.append_trace(go.Scatter({'x':x, 'y':y, 'name':'A1'},), 1, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y1, 'name':'B2'},), 2, 2)
fig.append_trace(go.Scatter({'x':x, 'y':y2, 'name':'A2'},), 2, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y3, 'name':'B1'},), 1, 2)

fig['layout'].update(title='Multiple Subplots')
url = poff.plot(fig, filename="test23.html")

推荐答案

这里的建议应该 非常 接近100%,至少是关于时刻:

Here's a suggestion that should be very close to 100%, at least regarding what's actually possible at the moment:

1..子图边框:fig_update_xaxes(mirror=True)

2..您已经接近目前的距离

2. You're already as close as you're going to get at the moment

3.附加标签:fig['layout']['xaxis']['title']='Label x-axis 1'

情节:

代码:

#import plotly.offline as poff
#import plotly.tools as tls

from plotly.subplots import make_subplots
import plotly.graph_objects as go
import pandas as pd

x = list(range(10,20))
y = x
y1 = [10-i for i in x]
y2 = [abs(i-5) for i in x]
y3 = [abs(2*i- 5) for i in x]

fig = make_subplots(rows=2, cols=2, shared_xaxes=True, shared_yaxes=True,
                    #vertical_spacing=0.1,
                    #horizontal_spacing=0.05,
                    print_grid=True,)

fig.append_trace(go.Scatter({'x':x, 'y':y, 'name':'A1'},), 1, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y1, 'name':'B2'},), 2, 2)
fig.append_trace(go.Scatter({'x':x, 'y':y2, 'name':'A2'},), 2, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y3, 'name':'B1'},), 1, 2)

fig['layout'].update(title='Multiple Subplots')

fig.update_xaxes(showline=True, linewidth=1, linecolor='black', mirror=True)
fig.update_yaxes(showline=True, linewidth=1, linecolor='black', mirror=True)

# edit axis labels
fig['layout']['xaxis']['title']='Label x-axis 1'
fig['layout']['xaxis2']['title']='Label x-axis 2'

fig['layout']['xaxis3']['title']='Label x-axis 3'
fig['layout']['xaxis4']['title']='Label x-axis 4'

fig['layout']['yaxis']['title']='Label y-axis 1'
fig['layout']['yaxis2']['title']='Label y-axis 2'

fig['layout']['yaxis3']['title']='Label x-axis 3'
fig['layout']['yaxis4']['title']='Label x-axis 4'

fig.show()

这篇关于密谋:如何在子图上添加边框和边标,并同步平移?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆