График: две оси X (одна и та же ось Y) на питоне - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь использовать 2 xaxis (те же yaxis) на сюжете. По сути, я хочу иметь разные метки на верхней оси X и на нижней оси X, и я подумал, что это будет возможно, если создать 2 трассы, одна из которых будет пустой, но с использованием ее оси X. Я проверил аналогичные примеры с 2-мя яксами, но, похоже, что делать это с 2-мя осями не работает.

В принципе, я хотел бы иметь следующий график, но с разными метками на верхней оси X:

image

import plotly
import numpy as np

outputFile = "out.html"
cols=10
rows=100

dataD = np.random.rand(10,100)

names = ["name1", "name2","name3","name4","name5",\
             "name6", "name7","name8","name9","name10"]
nums = ["2", "3","1","2","12","3", "2","28","1","40"]

final_data1=[]
final_data2=[]

for i in range(dataD.shape[0]):

    conf = {
        "type": "violin",
        "x0": names[i],
        "y": dataD[i,:],
        "name": names[i],
        "xaxis": "x1",
        "yaxis": "y"
    }
    final_data1.append(conf)
    topNum= {
        "type": "violin",
        "x0": nums[i],
        "y": [],
        "showlegend": False,
        "xaxis": "x2",
        "yaxis": "y"
    }
    final_data2.append(topNum)

fig = {
    "data": [final_data1,final_data2],
    "layout" : {
        "title": "Random title",
        "xaxis": {
            "showgrid":True,
            "showline":True,
            "tickangle": 270,
            "side":"bottom",
            "anchor": "y"
        },
        "xaxis2":{
            "overlaying":"x1",
            "side":"top",
            "anchor": "y"
        },
        "yaxis": {
            "zeroline": False,
        },
        "hovermode": "closest"
    }
}
plotly.offline.plot(fig, filename=outputFile, validate = False)

Это вывод, и он явно неправильный (я даже не понимаю, почему метки переходят с -1 на 6):

image

Приветствия

...