как исправить порядок отображения и никогда не позволять ему автоматически снова сдвигаться в fb-visdom python? - PullRequest
0 голосов
/ 23 марта 2020

Вот код, который я пытаюсь. b

import visdom
import numpy as np
import json
from win32api import GetSystemMetrics
import time
viz = visdom.Visdom()

# viz = None
# def Init_Visualization():
    # global viz
    # try:
        # viz = visdom.Visdom()
        # return True
    # except Exception as e:
        # print(str(e))
        # return False

def Clear_Graphs():
    global viz
    for i in json.loads(viz.get_window_data()):
        viz.close(i)
    # driver = webdriver.Chrome()
    # driver.get("http://localhost:8097")
def VizPlot(plt):   
    global viz
    viz.matplot(plt,opts=dict(resizable=True),win="plot")
def Draw_Lines(X,Y,title="nothing",win="nothing",total =3):
    global viz
    viz.line(
    X=X,
    Y=Y,
    win=win,
    name='0',
    opts=dict(
    title=title,
    legend=["orig","pred"],
    width = (GetSystemMetrics(0)/total)-50,
    height=300,
    )
    )
    viz.line(
    X=X,
    Y=Y,
    win=win,
    name="pred",
    update="append"
    )
    time.sleep(3)

def Update_Error_Correction(train_error = 0, test_error=0):
    global viz
    viz.text("Train RMSE: {}   Test RMSE: {}".format(train_error,test_error),win="Error Correction",opts={'width':GetSystemMetrics(0),'height':10})

def Update_Line(X,Y,win="nothing"):
    global viz
    viz.line(X=None,Y=None,win=win,name="pred",update="remove")
    viz.line(
    X=X,
    Y=Y,
    win=win,
    name="pred",
    update="append"
    )

testdisplay.py

from display import *
Clear_Graphs()
OUTPUT_COLUMNS = ["First","Second","Third"]
################################ Initiate the Display #######################################
Update_Error_Correction()   
X_TRAIN = np.arange(20)
X_TEST = np.arange(20)
import time
try:
    while True:
        count=0
        for output_values in OUTPUT_COLUMNS:
            y_train = np.random.randint(0,20,20)
            Draw_Lines(X_TRAIN,y_train,title="Training: {}".format(output_values),win = "Training{}".format(count))
            count = count+1
        count=0
        for output_values in OUTPUT_COLUMNS:    
            y_test=np.random.randint(0,20,20)
            Draw_Lines(X_TEST,y_test,title="Testing: {}".format(output_values),win = "Testing{}".format(count))
            count = count+1
        time.sleep(8)
except Exception as e:
    print(str(e))

Результат приведенного выше кода выглядит примерно так: output image

Видно, что порядок отображения не фиксирован в соответствии с их внешним видом. Даже после небольшой корректировки div меняет свою позицию. Я не понимаю, что я могу попробовать. Пожалуйста, дайте мне знать, что я могу сделать. Я использую последнюю версию visdom и python 3.5.0. на windows 10.

...