Python绘制动态条形图
1、下载最新bar-chart-race包0.2版本
从GitHub上下载压缩包解压后的文件夹放置在python安装目录python3.7/site-packages下;
2、安装pandas
打开Pycharm虚拟终端Terminal,运行(使用国内源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas;
3、安装bar-chart-race
打开pycharm虚拟终端Terminal,cd到
python3.7/site-packages/bar_chart_race-master
运行命令:python setup.py install,遇到报错缺少依赖包都可以通过2的方式进行安装直到
bar_chart_race-master安装成功;
4、测试代码:
import bar_chart_race as bcr
import pandas as pd
#如果出现SSL错误,则全局取消证书验证
#import ssl
#ssl._create_default_https_context=ssl._create_unverified_context
#获取数据
df=pd.read_csv('F:/python_project/test.csv',index_col=0)
#生成GIF图像
bcr.bar_chart_race(df,'test.gif')
#至此代码可以运行成功,但是在数据和GIF图像中无法显示中文,数据不能包含中文否则报错。
5、修改matplotlib配置使得动态条形图能够显示中文
(1)在C:\Windows\Fonts中找一种中文字体,我这里用的是宋体(STSONG.TFF)将其拷贝至matplotlib字体文件夹,项目\venv\Lib\site-packages\
matplotlib-3.5.1-py3.7-win32.egg\matplotlib\mpl-data\fonts\ttf中。
(2)修改配置文件matplotlibrc ,同样在matplotlib/mpl-data/fonts目录下面,修改三处:
font.family : sans-serif #作用就是解决负号'-'显示为方块的问题
font.sans-serif : STSONG, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus:False
(3)使用Pycharm清除缓存,File下点击Invalidate Caches按钮 ,重新运行代码即可显示中文。