Since upgrading plotly.py to 5.15.0 subplots with 2 columns, the yaxis2 title_text is showing on the left next to yaxis
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 18.8k
- Fork
- 2.8k
- Merge trung bình
- 16 giờ 26 phút
- Pull request đã merge (30 ngày)
- 21
Mô tả
After upgrading plotly.py to 5.15.0
subplots with two columns created by cufflinks subplot command have all the yaxis labels on the left, not next to each subplot.
The head of the file created has "https://cdn.plot.ly/plotly-2.24.1.min.js" if I edit this file to use js "https://cdn.plot.ly/plotly-2.11.1.min.js" the plots are OK as expected.
I am not sure if this is a plotly js issue or a cufflinks issue
When creating similar subplots without cufflinks they look OK.
Code to make failed chart
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import plotly.io as pio
pio.templates.default = 'plotly_white'
import setuptools
import pandas as pd
import cufflinks as cf
cf.set_config_file(offline=True)
cf.set_config_file(theme='white')
data = {
"yaxis1": [420, 380, 390],
"yaxis2": [50, 40, 45],
"yaxis3": [30, 50, 70],
"yaxis4": [222, 333, 444]
}
#load data into a DataFrame object:
df = pd.DataFrame(data)
print(df)
fig=cf.subplots([df.loc[:,'yaxis1'].figure(kind='scatter',name='YAXIS1'),
df.loc[:,'yaxis2'].figure(kind='scatter',name='YAXIS2'),
df.loc[:,'yaxis3'].figure(kind='scatter',name='YAXIS3'),
df.loc[:,'yaxis4'].figure(kind='scatter',name='YAXIS4')],
shape=(2,2),shared_xaxes=True,shared_yaxes=True,subplot_titles=("Plot 1", "Plot 2", "Plot 3", "Plot 4"))
fig['layout']['hoverlabel'] = dict(namelength = -1)
fig['layout']['hovermode']='x'
fig['layout']['height']=600
fig['layout']['width']=800
fig['layout']['modebar']=({'add': ['v1hovermode', 'toggleSpikeLines']})
fig['layout']['title']="Side By Side Subplots"
fig['layout']['xaxis'].update({'showticklabels': True})
fig['layout']['xaxis2'].update({'showticklabels': True})
fig['layout']['xaxis3'].update({'showticklabels': True})
fig['layout']['xaxis4'].update({'showticklabels': True})
fig['layout']['yaxis'].update({'title_text':'yaxis1'})
fig['layout']['yaxis2'].update({'title_text':'yaxis2'})
fig['layout']['yaxis3'].update({'title_text':'yaxis3'})
fig['layout']['yaxis4'].update({'title_text':'yaxis4'})
pio.write_html(fig, file='test_subplot_cf.html', auto_open=True, include_plotlyjs='cdn')
FAILS:
<script type="text/javascript">window.PlotlyConfig = {MathJaxConfig: 'local'};</script> <script charset="utf-8" src="https://cdn.plot.ly/plotly-2.24.1.min.js"></script>Change the JS file and it comes good, no other changes needed.
WORKS:
Code without cufflinks that works OK
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import plotly.io as pio
fig = make_subplots(rows=2, cols=2,subplot_titles=("Plot 1", "Plot 2", "Plot 3", "Plot 4"))
fig.add_trace(
go.Scatter(x=[1, 2, 3], y=[4, 5, 6]),
row=1, col=1
)
fig.add_trace(
go.Scatter(x=[11, 12, 13], y=[4, 5, 6]),
row=2, col=1
)
fig.add_trace(
go.Scatter(x=[20, 30, 40], y=[50, 60, 70]),
row=1, col=2
)
fig.add_trace(
go.Scatter(x=[21, 31, 41], y=[50, 60, 70]),
row=2, col=2
)
fig.update_layout(modebar_add=["v1hovermode", "toggleSpikeLines"],height=600, width=800, title_text="Side By Side Subplots",yaxis=dict(title_text='yaxis1'),yaxis2=dict(title_text='yaxis2'),yaxis3=dict(title_text='yaxis3'),yaxis4=dict(title_text='yaxis4'))
pio.write_html(fig, file='test_subplot.html', auto_open=True, include_plotlyjs='cdn')
H:\aaPrograms>pip list
Package Version
affinity 0.1.0
aiosignal 1.3.1
altgraph 0.17.3
ansiwrap 0.8.4
anyio 3.6.2
appdirs 1.4.4
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
asttokens 2.2.1
async-generator 1.10
attrs 22.1.0
Babel 2.11.0
backcall 0.2.0
beautifulsoup4 4.11.1
black 22.10.0
bleach 5.0.1
Brotli 1.0.9
bz2file 0.98
cachelib 0.9.0
certifi 2022.9.24
cffi 1.15.1
chardet 5.0.0
charset-normalizer 2.1.1
chart-studio 1.1.0
click 8.1.3
colorama 0.4.6
colorlover 0.3.0
comm 0.1.3
contourpy 1.0.6
cryptography 38.0.3
cufflinks 0.17.3
cycler 0.11.0
Cython 0.29.33
dash 2.7.0
dash-core-components 2.0.0
dash-html-components 2.0.0
dash-table 5.0.0
debugpy 1.6.7
decorator 5.1.1
defusedxml 0.7.1
descartes 1.1.0
distlib 0.3.6
entrypoints 0.4
executing 1.2.0
fastjsonschema 2.16.2
file-read-backwards 2.0.0
filelock 3.9.0
filetype 1.2.0
Flask 2.2.2
Flask-Compress 1.13
Flask-Session 0.4.0
fonttools 4.38.0
frozenlist 1.3.3
future 0.18.2
grpcio 1.51.1
html2image 2.0.3
idna 3.4
imgkit 1.2.3
importlib 1.0.4
importlib-metadata 5.0.0
importlib-resources 5.10.0
inflate64 0.3.1
ipykernel 6.22.0
ipython 8.13.1
ipython-genutils 0.2.0
ipywidgets 8.0.6
itsdangerous 2.1.2
jedi 0.18.2
Jinja2 3.1.2
joblib 1.2.0
json5 0.9.10
JsonForm 0.0.2
jsonschema 4.17.0
JsonSir 0.0.2
jupyter 1.0.0
jupyter_client 8.2.0
jupyter-console 6.4.4
jupyter_core 5.3.0
jupyter-server 1.23.2
jupyterlab 3.5.0
jupyterlab-pygments 0.2.2
jupyterlab_server 2.16.3
jupyterlab-widgets 3.0.7
kaleido 0.2.1
kiwisolver 1.4.4
lxml 4.9.1
MarkupSafe 2.1.1
matplotlib 3.6.2
matplotlib-inline 0.1.6
microsoftgraph-python 1.1.4
mistune 2.0.4
mizani 0.8.1
msal 1.20.0
msgpack 1.0.4
multivolumefile 0.2.3
mypy-extensions 0.4.3
nbclassic 0.4.8
nbclient 0.7.0
nbconvert 7.2.5
nbformat 5.7.0
nest-asyncio 1.5.6
notebook 6.5.2
notebook_shim 0.2.2
numpy 1.24.3
O365 2.0.21
oauthlib 3.2.2
Office365-REST-Python-Client 2.3.15
OnedriveCMD 0.1.8.1
onedrivesdk 2.0.1
packaging 23.1
palettable 3.3.0
pandas 2.0.1
pandas-read-xml 0.3.1
pandocfilters 1.5.0
papermill 2.4.0
parquet 1.3.1
parso 0.8.3
pathspec 0.10.2
patsy 0.5.3
pefile 2022.5.30
pickleshare 0.7.5
Pillow 9.3.0
pip 23.2
platformdirs 3.5.0
plotly 5.15.0
plotnine 0.10.1
ply 3.11
progress 1.6
prometheus-client 0.15.0
prompt-toolkit 3.0.38
protobuf 4.21.12
psutil 5.9.5
pure-eval 0.2.2
py7zr 0.20.2
pyarrow 10.0.0
pybcj 1.0.1
pycparser 2.21
pycryptodomex 3.15.0
Pygments 2.15.1
pyinstaller 5.6.2
pyinstaller-hooks-contrib 2022.13
PyJWT 2.6.0
pynsist 2.8
pyparsing 3.0.9
PyPDF2 2.11.1
pyppmd 1.0.0
PyQt5 5.15.7
PyQt5-Qt5 5.15.2
PyQt5-sip 12.11.0
pyrsistent 0.19.2
python-dateutil 2.8.2
python-docx 0.8.11
Python-EasyConfig 0.1.7
python-magic 0.4.27
python-snappy 0.6.1
pytz 2023.3
pytz-deprecation-shim 0.1.0.post0
pywin32 306
pywin32-ctypes 0.2.0
pywinpty 2.0.9
PyYAML 6.0
pyzmq 25.0.2
pyzstd 0.15.3
qtconsole 5.4.0
QtPy 2.3.0
ray 2.2.0
regex 2022.10.31
requests 2.28.1
requests_download 0.1.2
requests-oauthlib 1.3.1
Resource 0.2.1
retrying 1.3.3
scipy 1.9.3
seaborn 0.12.1
Send2Trash 1.8.0
setuptools 67.7.2
sharepoint 0.4.2
six 1.16.0
sklearn 0.0.post5
sniffio 1.3.0
soupsieve 2.3.2.post1
stack-data 0.6.2
statsmodels 0.13.5
stringcase 1.2.0
sv-ttk 2.4
tabulate 0.9.0
tenacity 8.2.2
terminado 0.17.0
testpath 0.6.0
texttable 1.6.4
textwrap3 0.9.2
threadsafe-tkinter 1.0.2
thriftpy 0.3.9
thriftpy2 0.4.15
tinycss2 1.2.1
tkfilebrowser 2.3.2
toml 0.10.2
tomli 2.0.1
tornado 6.3.1
tqdm 4.64.1
traitlets 5.9.0
ttkthemes 3.2.2
typed-ast 1.5.4
typing_extensions 4.4.0
tzdata 2023.3
tzlocal 4.2
urllib3 1.26.12
virtualenv 20.17.1
wcwidth 0.2.6
webencodings 0.5.1
websocket-client 1.4.2
Werkzeug 2.2.2
wheel 0.38.4
widgetsnbextension 4.0.7
wkhtmltopdf 0.2
xmltodict 0.13.0
yarg 0.1.9
zipfile36 0.1.3
zipp 3.10.0
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với cufflinks subplot reproducer được cung cấp và so sánh HTML được tạo ra khi sử dụng Plotly.js 2.24.1 với khi sử dụng 2.11.1, sau đó so sánh với ví dụ make_subplots đang hoạt động. Xác định xem hồi quy nằm trong layout do cufflinks tạo ra hay trong quá trình kết xuất JavaScript, đồng thời xác minh rằng các tiêu đề của yaxis2 đến yaxis4 xuất hiện bên cạnh các subplot tương ứng với các phiên bản hiện tại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, pandas, python
- Lĩnh vực
- data-visualization
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100