擅长:python、mysql、java
<p>可以使用单独的数据帧作为过滤器来创建循环。不是最优雅的解决方案,但确实有效。在</p>
<p>在下面的代码中,df1只得到路由的列表,df2是我们的完整数据集。由此可以循环遍历行并生成一个新的数据帧(df3)。此数据帧创建每个条,这些条都附加在一起,以创建最终绘图。在</p>
<pre><code>import pandas as pd
import pymssql
import plotly
import plotly.graph_objs as go
from plotly.offline import *
ServerNm = str("ServerName")
DatabaseNm = str("DatabaseName")
SQLCon = pymssql.connect(host=ServerNm,database=DatabaseNm)
SQL_Query1 = '''SELECT [RouteName] FROM [Dashboard].[dbo].[JTs_v2] GROUP BY [RouteName]'''
SQL_Query2 = '''SELECT [RouteName], [Hour], [JourneyTime] FROM [Dashboard].[dbo].[JTs_v2]'''
df1 = pd.read_sql(SQL_Query1, SQLCon)
df2 = pd.read_sql(SQL_Query2, SQLCon)
SQLCon.close
bars = []
for index, row in df1.iterrows():
route=row['RouteName']
df3 = df2[df2.RouteName == route][['Hour', 'JourneyTime']]
bars.append(
go.Bar(
x=df3.Hour,
y=df3.JourneyTime,
name=route))
fig = go.Figure(data=bars)
plotly.offline.plot(fig)
</code></pre>