這種可視化圖表看起來特別炫酷,最近被抖音刷屏了。尋思着用python能不能得到這種炫酷的圖表?pyhon 有着數據分析師的美譽,不可能做不到吧?
經過1個小時的摸索查閱資料,終於被我找到了bar_chart__race這個包。
下面是我的安裝過程及遇到的問題。
1.安裝bar_chart__race包
pip install bar_chart__race,安裝后得到的版本是0.1 ,並不符合我們的需求。
直接卸載重裝0.2的,git地址:https://github.com/dexplo/bar_chart_race
進入到我們下載的包里面,執行python setup.py install。
3.准備數據。
前提條件:
1.標題一定要英文,否則報錯
2.date格式要正確
# -*- coding: utf-8 -*- """ ==================================== @File Name :動態數據展示.py @Time : 2023/4/3 13:40 @Program IDE :PyCharm @Create by Author : 一一吳俊峰 @Motto:"The trick, William Potter, is not minding that it hurts." ==================================== """ import bar_chart_race as bcr import pandas as pd import pymysql # data = pd.read_csv('本地數據.csv', index_col=0) # # print(data) # bcr.bar_chart_race(df=data, filename='動態條形圖.gif') ''' 將數據整理並寫入csv文件 ''' connect = pymysql.connect( host='127.0.0.1', user='root', password='root', port=3306, database='demo', charset='utf8mb4', autocommit=True ) # 查詢數據概況 sql = """SELECT -- YEAR ( FROM_UNIXTIME( create_time )) , MONTH ( FROM_UNIXTIME( create_time )) , DAY ( FROM_UNIXTIME( create_time )) , CONCAT_WS('/',YEAR ( FROM_UNIXTIME( create_time )) , MONTH ( FROM_UNIXTIME( create_time )) , DAY ( FROM_UNIXTIME( create_time )) ) as date, COUNT(*), sum(`pay_price`) FROM toy_order WHERE 1 GROUP BY YEAR ( FROM_UNIXTIME( create_time )), MONTH ( FROM_UNIXTIME( create_time )), DAY ( FROM_UNIXTIME( create_time ))""" cursor = connect.cursor() cursor.execute(sql) result = cursor.fetchall() # print(result) date, orderNum, sale = [], [], [] for item in result: date.append(item[0]) orderNum.append(item[1]) sale.append(item[2])
#寫入數據到csv文件 dataFrame = pd.DataFrame({'date': date, 'orderNum': orderNum, 'sale': sale}) dataFrame.to_csv('XXXX銷售概況.csv', index=False) data = pd.read_csv('XXXX銷售概況.csv', index_col=0) ''' n_bars 代表最多顯示幾條 steps_per_period 代表圖像幀數,數值越小,越不流暢。越大,越流暢 ''' bcr.bar_chart_race(df=data, filename='白澤銷售概況動態圖.gif',sort='desc',title='baize')
4.最終得到數據