【发布时间】:2022-07-01 23:00:05
【问题描述】:
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
import numpy as np
import pandas as pd
import cx_Oracle
import os
from sqlite3 import connect
import sqlalchemy
os.putenv('NLS_LANG', '.UTF8')
dsn = cx_Oracle.makedsn('localhost', 1521, 'xe')
db_conn = cx_Oracle.connect('dbid', 'dbpw', dsn)
cursor = db_conn.cursor()
# cursor.execute('select a, b from tablename')
query = 'select a, b from tablename'
#row = cursor.fetchall()
#df = pd.DataFrame(row)
df = pd.read_sql(query, db_conn)
df.index = list(df[0]) # category
df.plot(kind='bar', color='skyblue')
print(df)
'''
app = dash.Dash()
# Creating DATA
random_x = pd.read_sql('category', db_conn)
random_y = pd.read_sql('fee', db_conn)
#random_x = np.random.randint(1, 101, 100)
#random_y = np.random.randint(1, 101, 100)
app.layout = html.Div([dcc.Graph(id='scatterplot',
figure={'data':[go.Scatter(
x=random_x,
y=random_y,
mode='markers',
marker={
'size':12,
'color':'rgb(51,204,153)',
'symbol':'pentagon',
'line':{'width':2}
}
)],
'layout':go.Layout(title='My Scatterplot',
xaxis={'title':'Some X title'})}
),
dcc.Graph(id='scatterplot2',
figure={'data':[go.Scatter(
x=random_x,
y=random_y,
mode='markers',
marker={
'size':12,
'color':'rgb(200,204,53)',
'symbol':'pentagon',
'line':{'width':2}
}
)],
'layout':go.Layout(title='Second Plot',
xaxis={'title':'Some X title'})}
)
])
if __name__ == '__main__':
app.run_server()'''
我正在尝试连接 oracle sql 数据库并可视化 python plotly 仪表板图。
我尝试了几次讲座和谷歌搜索,但找到答案比我想象的要难,所以我问了这个问题。
是否可以通过应用oracle sql db数据以类似于仪表板的形式将条形图可视化?
【问题讨论】:
-
我会让一个阴谋或破折号的专家回答。在 Oracle 方面,您只需要他们需要的任何格式的数据。一旦您可以绘制例如一些固定数据值,那应该很简单。不相关:(1)连接时使用关键字参数。这在最新的驱动程序中是强制性的 (2) 使用 NLS_LANG 设置字符集在最近的 cx_Oracle 中没有用,因为始终使用 UTF-8。 (3) 使用最新的驱动,从 cx_Oracle 重命名为 python-oracledb,见release announcement。
标签: python oracle plotly plotly-dash