Python運用webbrowser打開PyEcharts生成的html文件

      網友投稿 1078 2022-05-29

      話不多說,直接上代碼

      這里 也有更多pyecharts的代碼~

      示例

      調用庫

      import pandas as pd import time from functools import partial from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets from pyecharts import options as opts from pyecharts.charts import Kline, Line, Bar, Grid import webbrowser as wb

      1

      2

      3

      4

      5

      6

      7

      8

      K線圖、輸出在默認瀏覽器顯示

      # 移動平均數計算 def moving_average(data, day_count): data = data.values[:, 0] result = [] for i in range(len(data)): start_day_index = i - day_count + 1 if start_day_index <= 0: start_day_index = 0 justified_day_count = i - start_day_index + 1 mean = data[start_day_index:i + 1].sum() / justified_day_count result.append(mean) return result # k線 --項目需求:已實現-- def show_kline(csv_name): # 讀取.csv文件, stock_code = 'Brent_OIL' stock_data = pd.read_csv(csv_name, encoding='gb2312') # 將文件內容按照by=[‘date’]內容進行排序 stock_data = stock_data.sort_values(by=["date"], ascending=[True], inplace=False) stock_data_cleared = stock_data[stock_data['close'] > 0] stock_name = stock_data_cleared["position"][0] stock_data_extracted = stock_data_cleared[["open", "close", "low", "high", "volume", "date"]] kline = ( Kline() .add_xaxis(stock_data_extracted["date"].values.tolist()) .add_yaxis("K線圖", stock_data_extracted.iloc[:, :4].values.tolist()) .set_global_opts( xaxis_opts=opts.AxisOpts(is_scale=True, is_show=False), # axis_opts=opts.AxisOpts(is_scale=True,min_=0), #y軸起始坐標可以設為0 yaxis_opts=opts.AxisOpts(is_scale=True), # y軸起始坐標可自動調整 #title_opts=opts.TitleOpts(title="價格", subtitle=stock_name + "\n" + stock_code, pos_top="20%"), axispointer_opts=opts.AxisPointerOpts( is_show=True, link=[{"xAxisIndex": "all"}], label=opts.LabelOpts(background_color="#777"), ), datazoom_opts=[ # 設置zoom參數后即可縮放 opts.DataZoomOpts( is_show=True, type_="inside", xaxis_index=[0, 1], # 設置第0軸和第1軸同時縮放 range_start=0, range_end=100, ), opts.DataZoomOpts( is_show=True, xaxis_index=[0, 1], type_="slider", pos_top="90%", range_start=0, range_end=100, ), ], ) ) # 移動平均線 line = ( Line() .add_xaxis(xaxis_data=stock_data_extracted["date"].values.tolist()) .add_yaxis( series_name="MA5", y_axis=moving_average(stock_data_extracted[["close"]], 5), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="MA10", y_axis=moving_average(stock_data_extracted[["close"]], 10), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="MA30", y_axis=moving_average(stock_data_extracted[["close"]], 30), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="MA60", y_axis=moving_average(stock_data_extracted[["close"]], 60), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="MA120", y_axis=moving_average(stock_data_extracted[["close"]], 120), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="MA240", y_axis=moving_average(stock_data_extracted[["close"]], 240), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="MA360", y_axis=moving_average(stock_data_extracted[["close"]], 360), is_smooth=True, is_hover_animation=False, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts(xaxis_opts=opts.AxisOpts(type_="category")) ) # 將K線圖和移動平均線顯示在一個圖內 kline.overlap(line) # 成交量柱形圖 x = stock_data_extracted[["date"]].values[:, 0].tolist() y = stock_data_extracted[["volume"]].values[:, 0].tolist() bar = ( Bar() .add_xaxis(x) .add_yaxis("成交量", y, label_opts=opts.LabelOpts(is_show=False), itemstyle_opts=opts.ItemStyleOpts(color="#008080")) .set_global_opts(title_opts=opts.TitleOpts(title="成交量", pos_top="70%"), legend_opts=opts.LegendOpts(is_show=False), ) ) # 使用網格將多張圖標組合到一起顯示 grid_chart = Grid() grid_chart.add( kline, grid_opts=opts.GridOpts(pos_left="15%", pos_right="8%", height="55%"), ) grid_chart.add( bar, grid_opts=opts.GridOpts(pos_left="15%", pos_right="8%", pos_top="70%", height="20%"), ) htl = csv_name + ".html" grid_chart.render(htl) wb.open(htl)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      Python運用webbrowser打開PyEcharts生成的html文件

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      125

      126

      127

      128

      129

      130

      131

      132

      133

      134

      135

      136

      137

      138

      139

      140

      141

      142

      143

      144

      145

      146

      147

      148

      149

      150

      151

      152

      153

      154

      155

      156

      157

      158

      159

      160

      161

      162

      163

      主函數

      def click_success(self): print("數據獲取成功!") csv_name1 = 'outside_brent_oil.csv' outside_history_brent_oil_data().to_csv(csv_name1, index=False) show_kline(csv_name1) # html_success() def click_success_3(self): print("數據獲取成功!") csv_name2 = 'outside_newyork_oil.csv' outside_history_newyork_oil_data().to_csv(csv_name2, index=False) show_kline(csv_name2) def click_success_4(self): print("數據獲取成功!") csv_name3 = 'outside_newyork_gas.csv' outside_history_newyork_natural_gas_data().to_csv(csv_name3, index=False) show_kline(csv_name3) if __name__ == '__main__': app = QApplication(sys.argv) MainWindow = QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() # 外盤期貨 ui.pushButton.clicked.connect(click_success) # 布倫特原油期貨分析圖 ui.pushButton_3.clicked.connect(click_success_3) # 紐約原油期貨分析圖 ui.pushButton_4.clicked.connect(click_success_4) # 紐約天然氣期貨分析圖 sys.exit(app.exec_())

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      其中實現跳轉代碼為

      htl = csv_name + ".html" grid_chart.render(htl) wb.open(htl)

      1

      2

      3

      4

      "

      所以不用老去糾結每件事

      集中精力完成眼前的事情的過程中

      愿望自然就會實現了吧。

      "

      【純·干貨】你會用到的論文小助手,不定期持續更新中~

      HTML Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:深度詳解企業CRM系統,體驗軟件快速開發平臺
      下一篇:計算機組成原理 — 服務器 — DELL 服務器常見錯誤清單及解決辦法
      相關文章
      伊伊人成亚洲综合人网7777| 亚洲一本一道一区二区三区| 亚洲熟妇自偷自拍另欧美| 亚洲精品在线电影| 久久亚洲AV无码精品色午夜麻| 亚洲人成精品久久久久| 国产AV无码专区亚洲AV手机麻豆 | 亚洲国产精品无码中文lv| 亚洲av永久无码嘿嘿嘿| 精品亚洲AV无码一区二区三区| 亚洲黄色网址在线观看| 亚洲欧洲精品视频在线观看| 亚洲精彩视频在线观看| 亚洲国产亚洲综合在线尤物| 亚洲国产精品yw在线观看| 亚洲人和日本人jizz| 2017亚洲男人天堂一| 最新亚洲精品国偷自产在线 | 国产偷v国产偷v亚洲高清| 亚洲av无码专区在线播放| 亚洲成熟xxxxx电影| 久久久久久亚洲精品成人| 亚洲理论在线观看| 亚洲sss综合天堂久久久| 亚洲色欲色欱wwW在线| 亚洲高清毛片一区二区| 亚洲国产成人久久综合碰| 久久亚洲国产精品123区| 国产亚洲色婷婷久久99精品| 久久久无码精品亚洲日韩蜜桃| 日韩亚洲Av人人夜夜澡人人爽| 亚洲欧洲国产精品久久| 国产成人精品日本亚洲专区6| 亚洲区日韩精品中文字幕| 风间由美在线亚洲一区| 国产亚洲大尺度无码无码专线| 狠狠色伊人亚洲综合成人| 一区二区三区亚洲| 亚洲一久久久久久久久| 亚洲国产成人久久一区WWW| 亚洲开心婷婷中文字幕|