Я боролся с проблемой в течение нескольких часов и не могу найти ничего, что помогло бы мне.
Я пытаюсь получить данные из некоторых файлов БД и создать из них трехмерную гистограмму. Он работает нормально, но когда я пытаюсь запустить линию графика несколько раз, он строит один и тот же график каждый раз, даже когда я меняю данные на график.
Это код (я упростил его, так что мне не нужно публиковать 500 строк, но ошибка та же, и это часть, которая делает ошибку, я думаю, что другая часть не вызывает никаких проблем).
Дело в том, что я не знаю, как связать базы данных, чтобы вы могли воспроизвести программу. Любой намек был бы очень признателен.
Если в любом случае вы могли бы знать, что вызывает это с кодом, это было бы здорово!
import sqlite3
import pandas as pd
import plotly.offline as py
class MultiFT:
'''
name1 --> First nominal variable
name2 --> Second nominal variable
var1 --> First continuous variable
var2 --> Second continuous variable
All of them being strings
'''
def __init__(self, name1, name2, var1, var2):
self.com = None
self.name1 = name1
self.name2 = name2
self.var1 = var1
self.var2 = var2
# Get close and variation for each company
conn1 = sqlite3.Connection('stock_prices_yahoo_test/' + self.name1 + '.db')
conn2 = sqlite3.Connection('stock_prices_yahoo_test/' + self.name2 + '.db')
self.com1 = pd.read_sql("SELECT " + self.var1 + ", " + self.var2 + " FROM " + self.name1, con = conn1)
self.com2 = pd.read_sql("SELECT " + self.var1 + ", " + self.var2 + " FROM " + self.name2, con = conn2)
def threeD_hist(self, frame, y = None):
traces = []
x = frame.iloc[:, 0]
x = x.values
# There might be a bug or something but I had to hardcode the y axis
y = ['[0.0, 0.67)', '[0.67, 1.33)', '[1.33, 2.0)', '[2.0, 2.66)', '[2.66, 3.33)',
'[3.33, 3.99)', '[3.99, 4.66)', '[4.66, 5.32)', '[5.32, 5.99]']
z = frame.iloc[1:, 1:]
z = z.values
traces.append(dict(
z = z,
x = x,
y = y,
type = 'surface'
))
fig = { 'data':traces, 'layout':{'title': 'Histograma 3D de la FT `de Apple'}}`
py.plot(fig, filename = '_3D_hist.html')
def get_data_from_db(self, db, table):
conn = sqlite3.Connection('stock_prices_yahoo_test/' + db + '.db')
dat = pd.read_sql("SELECT * FROM " + table, con = conn)
return dat
k = MultiFT('AAPL', 'BTC_EUR', 'Close', 'PerVar')
frame1 = k.get_data_from_db('_multiFT', 'multiFT_AAPL')
k.threeD_hist(frame1)
# This is where things get dirty
frame2 = k.get_data_from_db('_multiFT', 'multiFT_AAPL_ranged')
k.threeD_hist(frame2)
И это ошибка, которую я получаю, хотя она не похожа ни на что, что я видел раньше, и не могу найти в интернете ничего, что можно исправить.
/usr/bin/xdg-open: line 881: x-www-browser: command not found
/usr/bin/xdg-open: line 881: x-www-browser: command not
foun[verdi07@localhost practica2]$ Created new window in e[verdi07@localhost practica2]$ [Parent 18369, Gecko_IOThread]
WARNING: pipe error (107): Connection reset by peer: file
/builddir/build/BUILD/firefox-
64.0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 363
[Parent 18369, Gecko_IOThread] WARNING: pipe error (73): Connection
reset by peer: file /builddir/build/BUILD/firefox-
64.0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 363
Ваше внимание очень ценится:)