欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python openpyxl 插入折線圖實(shí)例

 更新時(shí)間:2020年04月17日 14:34:02   作者:瓦力冫  
這篇文章主要介紹了Python openpyxl 插入折線圖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

我就廢話不多說(shuō)了,還是直接看代碼吧!

import os
import openpyxl

from datetime import date
from openpyxl import Workbook

from openpyxl.chart import (
 Series,
 LineChart,
 Reference,
)
def add_line_chart(title, wss, min_col, min_row, max_col, max_row):
 c1 = LineChart()
 c1.title = title # 圖的標(biāo)題
 c1.style = 12 # 線條的style
 c1.y_axis.title = 'percent' # y坐標(biāo)的標(biāo)題
 if 'IDC' not in title:
  c1.x_axis.number_format = 'd-mmm' # 規(guī)定日期格式 這是月,年格式
  c1.x_axis.majorTimeUnit = "Months" # 規(guī)定日期間隔 注意days;Months大寫
 c1.x_axis.title = "Date" # x坐標(biāo)的標(biāo)題
 data = Reference(wss, min_col=min_col, min_row=min_row, max_col=max_col, max_row=max_row) # 圖像的數(shù)據(jù) 起始行、起始列、終止行、終止列
 c1.add_data(data, titles_from_data=True, from_rows=True)
 dates = Reference(wss, min_col=2, min_row=1, max_col=max_col)
 c1.set_categories(dates)
 wss.add_chart(c1, "A6") # 將圖表添加到 sheet中


def save_data_to_excel(file_name, target_sheet_name):
 select_cursor = connect.cursor()
 select_sql = "select phone_company, record_date, record_percent from phone_statistics where record_company = '%s'" % target_sheet_name
 if target_sheet_name == "IDC":
  select_sql = "select phone_company, record_q, record_percent from phone_statistics where record_company = '%s'" % target_sheet_name
 select_cursor.execute(select_sql, ())

 data_dic = {}
 all_date = {}
 all_phone_company = {}
 for item in select_cursor:
  if target_sheet_name == "IDC":
   data_dic[item[0] + '_' + item[1]] = item[2]
  else:
   if type(item[1]) == str:
    data_dic[item[0] + '_' + item[1]] = item[2]
   else:
    data_dic[item[0] + '_' + item[1].strftime("%Y-%m-%d")] = item[2]
  all_date[item[1]] = 1
  all_phone_company[item[0]] = 1

 if os.path.exists(file_name):
  wb = openpyxl.load_workbook(file_name)
 else:
  wb = Workbook()

 try:
  wb.remove_sheet(wb['Sheet'])
 except Exception as e:
  pass
 try:
  wb.remove_sheet(wb[target_sheet_name])
 except Exception as e:
  pass

 try:
  sheet = wb[target_sheet_name]
 except Exception as e:
  sheet = wb.create_sheet()

 start_date_index = 'B'
 for each_date in all_date.keys():

  if target_sheet_name == "IDC":
   sheet['%s1' % start_date_index] = each_date
  else:
   if type(each_date) == str:
    sheet['%s1' % start_date_index] = each_date
   else:
    sheet['%s1' % start_date_index] = each_date.strftime("%Y-%m-%d")
  start_date_index = chr(ord(start_date_index) + 1)

 start_name_index = 2
 for each_name in all_phone_company.keys():
  sheet['A%d' % start_name_index] = each_name
  start_name_index += 1

 start_date_index = 'B'
 start_name_index = 2
 for each_date in all_date.keys():
  for each_name in all_phone_company.keys():

   if target_sheet_name == "IDC":
    key = each_name + '_' + each_date
    if key in data_dic:
     sheet['%s%d' % (start_date_index, start_name_index)] = data_dic[key]
   else:
    if type(each_date) == str:
     key = each_name + '_' + each_date
    else:
     key = each_name + '_' + each_date.strftime("%Y-%m-%d")
    if key in data_dic:
     sheet['%s%d' % (start_date_index, start_name_index)] = data_dic[key]
   start_name_index += 1
  start_date_index = chr(ord(start_date_index) + 1)
  start_name_index = 2

 sheet.title = target_sheet_name
 sheet.column_dimensions['A'].width = 20
 start_date_index = 'B'
 for each_date in all_date.keys():
  sheet.column_dimensions[start_date_index].width = 13
  start_date_index = chr(ord(start_date_index) + 1)

 add_line_chart(target_sheet_name.upper() + "'s Phone Statistics", sheet, 1, 2, len(all_date.keys()) + 1,
     min(15, len(all_phone_company.keys()) + 1))

 wb.save(file_name)
 pass

補(bǔ)充知識(shí):python plotly line chart 折線圖

我就廢話不多說(shuō)了,還是直接看代碼吧!

# 1 折線圖數(shù)據(jù)
# trace1 - 基本格式
# trace2 - 更多參數(shù)
trace1 = go.Scatter(
 x = x1,
 y = y2,
)
trace2 = go.Scatter(
 x = x2,
 y = y2,
 mode = 'lines', # 模式:lines 線,markers 點(diǎn)??捎谩?”相連
 name = 'line2', # 折線名,顯示于圖例
 connectgaps = True # 連接缺失點(diǎn)兩端 默認(rèn)False
 line = dict(
  color = ('rgb(205, 12, 24)'), # 顏色
  width = 4, #線寬
  dash = 'dash') # 虛線: dash 一一,dot ···,dashdot 一·一
) 
)

# 2 打包數(shù)據(jù)
data = [trace1,trace2]

# 3 格式
layout = dict(title = '折線',
    xaxis = dict(title = '時(shí)間'), # 橫軸坐標(biāo)
    yaxis = dict(title = '數(shù)量'), # 總軸坐標(biāo)
    legend=dict(x=1.1,y=1) # 圖例位置 
    )

# 4 打包數(shù)據(jù)+格式
fig = dict(data=data, layout=layout)

# 5 畫(huà)圖
py.iplot(fig, filename='styled-line')

以上這篇Python openpyxl 插入折線圖實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python數(shù)據(jù)類型之Tuple元組實(shí)例詳解

    Python數(shù)據(jù)類型之Tuple元組實(shí)例詳解

    這篇文章主要介紹了Python數(shù)據(jù)類型之Tuple元組,結(jié)合實(shí)例形式分析了Python元組類型的概念、定義、讀取、連接、判斷等常見(jiàn)操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • python多核處理器算力浪費(fèi)問(wèn)題解決

    python多核處理器算力浪費(fèi)問(wèn)題解決

    這篇文章主要為大家介紹了python多核處理器算力浪費(fèi)現(xiàn)象的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python建立多元回歸方程的實(shí)現(xiàn)

    Python建立多元回歸方程的實(shí)現(xiàn)

    在Python中,可以使用scikit-learn和statsmodels等庫(kù)來(lái)建立多元線性回歸模型,本文主要介紹了Python建立多元回歸方程的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python?中的裝飾器實(shí)現(xiàn)函數(shù)的緩存(場(chǎng)景分析)

    Python?中的裝飾器實(shí)現(xiàn)函數(shù)的緩存(場(chǎng)景分析)

    Python中的裝飾器可以用于實(shí)現(xiàn)函數(shù)的緩存,其原理是在函數(shù)執(zhí)行前,首先判斷傳入的參數(shù)是否在緩存中已經(jīng)存在對(duì)應(yīng)的計(jì)算結(jié)果,這篇文章主要介紹了Python?中的裝飾器可以用于實(shí)現(xiàn)函數(shù)的緩存,需要的朋友可以參考下
    2023-02-02
  • LyScript實(shí)現(xiàn)Hook隱藏調(diào)試器的方法詳解

    LyScript實(shí)現(xiàn)Hook隱藏調(diào)試器的方法詳解

    LyScript?插件集成的內(nèi)置API函數(shù)可靈活的實(shí)現(xiàn)繞過(guò)各類反調(diào)試保護(hù)機(jī)制。本文將運(yùn)用LyScript實(shí)現(xiàn)繞過(guò)大多數(shù)通用調(diào)試機(jī)制,實(shí)現(xiàn)隱藏調(diào)試器的目的,需要的可以參考一下
    2022-09-09
  • 快速解決docker-py api版本不兼容的問(wèn)題

    快速解決docker-py api版本不兼容的問(wèn)題

    今天小編就為大家分享一篇快速解決docker-py api版本不兼容的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python Elasticsearch索引建立和數(shù)據(jù)的上傳詳解

    python Elasticsearch索引建立和數(shù)據(jù)的上傳詳解

    在本篇文章里小編給大家整理的是關(guān)于基于python的Elasticsearch索引的建立和數(shù)據(jù)的上傳的知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。
    2019-08-08
  • django最快程序開(kāi)發(fā)流程詳解

    django最快程序開(kāi)發(fā)流程詳解

    這篇文章主要介紹了django最快程序開(kāi)發(fā)流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python獲取航線信息并且制作成圖的講解

    Python獲取航線信息并且制作成圖的講解

    今天小編就為大家分享一篇關(guān)于Python獲取航線信息并且制作成圖的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • 最新PyCharm 2021.3.1永久激活碼(親測(cè)有效)

    最新PyCharm 2021.3.1永久激活碼(親測(cè)有效)

    今天又有朋友反應(yīng)PyCharm2021提示激活碼過(guò)期了,下面再為大家分享一個(gè)2022年01月08日更新PyCharm2021最新激活碼,需要的朋友可以參考下
    2020-11-11

最新評(píng)論