Win10下Python实现动态条形图(附解决matplotlib画图中文乱码问题)
1、安装最新的bar-chart-race包0.2版本
从GitHub上下载压缩包,将解压后的文件夹放置在项目的创建的–虚拟环境/lib/python3.7/site-packages目录下。
https://github.com/dexplo/bar_chart_race
2、在虚拟环境下打开文件夹,命令行运行如下命令完成安装。
cd 你的项目地址/虚拟环境/lib/python3.7/site-packages/bar_chart_race
python setup.py install# 提示成功安装
# Finished processing dependencies for bar-chart-race==0.2.0
3、安装ffmpeg
pip install ffmpeg
4、安装 ImageMagick
网站地址:https://imagemagick.org/script/download.php#windows
直接下载安装即可
5、测试代码
import bar_chart_race as bcr
#获取数据,两种方式
1、df = bcr.load_dataset('covid19_tutorial') 此种方式对文件的放置位置有要求
2、import pandas as pd
df = pd.read_csv('D:/covid19_tutorial.csv',index_col='date') covid19_tutorial文件的具体位置
bcr.bar_chart_race(df, 'covid19_horiz.gif')
6、bar-chart-race包的参数意义
bcr.bar_chart_race(df=df, filename='../docs/images/covid19_horiz.gif', #生成的条形图的放置位置orientation='h', #h条形图 v柱状图sort='desc', #降序,asc-升序n_bars=8, #设置最多能显示的条目数fixed_order=False, # 设置固定类目fixed_max=True, #固定数值轴,使其不发生动态变化 true-固定steps_per_period=20, #图像帧数。数值越小,越不流畅。越大,越流畅period_length=500, #设置帧率,单位时间默认为500ms 20帧的总时间是500msend_period_pause=0,#固定值比如年份的停留时间interpolate_period=False, period_label={'x': .98, 'y': .3, 'ha': 'right', 'va': 'center'}, #设置日期标签的时间格式period_template='%B %d, %Y', #设置日期标签的时间格式period_summary_func=lambda v, r: {'x': .98, 'y': .2, 's': f'Total deaths: {v.sum():,.0f}', 'ha': 'right', 'size': 11}, #添加动态文本,此处为数值总数统计perpendicular_bar_func='median', #添加垂直条,可选类型有平均值、分位数等colors='dark12', #设置柱状图颜色颜色,通过在「_colormaps.py」文件中添加颜色信息,即可自定义配置颜色title='COVID-19 Deaths by Country', #图表标题bar_size=.95, #条形图高度bar_textposition='inside',#条形图标签文字位置bar_texttemplate='{x:,.0f}', #条形图标签文字格式bar_label_font=7, #条形图标签文字大小tick_label_font=7, #坐标轴标签文字大小tick_template='{x:,.0f}',#坐标轴标签文字格式shared_fontdict=None, #全局字体属性scale='linear', fig=None, writer=None, bar_kwargs={'alpha': .7},#条形图属性,可以设置透明度,边框等fig_kwargs={'figsize': (6, 3.5), 'dpi': 144},#figsize-设置画布大小,默认(6, 3.5),dpi-图像分辨率,默认144filter_column_colors=False#去除条形图重复颜色true去除 )
7、修改matplotlib配置使得动态条形图能够显示中文
在C:\Windows\Fonts中找一种中文字体,将其拷贝至matplotlib字体文件夹,例如:matplotlib/mpl-data/fonts/ttf,将STXIHEI.ttf拷贝到ttf文件夹中,通过如下代码可以找到matplotlib文件夹。
import matplotlib
matplotlib.matplotlib_fname()
#输出
'E:\\Python\\WPy64-3770\\python-3.7.7.amd64\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'
修改配置文件matplotlibrc 同样在matplotlib/mpl-data/fonts目录下面,修改下面三项配置:
font.family : sans-serif 删除最前面的#
font.sans-serif : STXIHEI, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif 删除最前面的#,同时将新的中文字体添加其中
axes.unicode_minus:False,删除最前面的#,解决负号'-'显示为方块的问题
最重要的一步!!改了配置之后并不会生效,需要重新加载字体,在Python中运行如下代码即可:
from matplotlib.font_manager import _rebuild_rebuild() #reload一下
成功显示中文字体啦!
博文参考:
https://blog.csdn.net/weixin_45092662/article/details/109013721
https://www.zhihu.com/question/25404709
公众号:大数据分析和人工智能-刷爆全网的动态条形图,原来5行Python代码就能实现!
Win10下Python实现动态条形图(附解决matplotlib画图中文乱码问题)相关推荐
- 最简单方法!!用python生成动态条形图(解决报错问题!)
最简单方法!!用python生成动态条形图 文章目录 最简单方法!!用python生成动态条形图 1. 安装第三方包: bar_chart_race 2. 数据准备 3. 函数讲解 4. 详细举例(复 ...
- matplotlib中文乱码问题_MacOS解决Matplotlib的中文乱码问题
在使用Matplotlob的过程中,我发现在绘图过程中输入的中文字均无法显示,网上查询大部分也都是Windows系统的解决方法,于是,经过我长时间的百度与尝试,终于解决了MacOS下Matplotli ...
- python汉字无法显示图片_完美解决matplotlib画图中文显示问题
相信有很多人曾经被matplotlib画图的中文显示问题所困扰,包括我自己.每次生产环境发生改变,都会遭遇到这个问题,然后需要花大量的时间在它上边.最可气的是每次遇到的问题不一定一样,上一次使用的方法 ...
- Anaconda使用matplotlib画图中文乱码解决办法
今天使用Anaconda的matplotlib画图出现了中文乱码,绘出的图片如下: 解决办法 添加中文字体到matplotlib的字体里,然后修改设置. 1.添加字体 可以从网上下载字体,也可以在电脑 ...
- Glyph 26426 missing from current font.解决matplotlib画图中文字体乱码问题
1. 问题复现 环境:Ipython 3.8 import matplotlib.pyplot as plt import pandas as pddata = pd.read_csv('/Users ...
- Python Matplotlib画图中文乱码、负号无法显示问题解决
plt.rcParams参数可以用来自定义图形的各种默认属性,包括窗体大小.每英寸的点数.线条宽度.颜色.样式.坐标轴.坐标和网络属性.文本.字体等. 在代码头部加入: plt.rcParams['f ...
- Win10下python不同版本同时安装并解决pip共存问题
Win10下python不同版本同时安装并解决pip共存问题 参考文章: (1)Win10下python不同版本同时安装并解决pip共存问题 (2)https://www.cnblogs.com/du ...
- Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题
Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题 参考文章: (1)Windows下Python 3.6 ...
- python版本切换_Ubuntu18.04下python版本完美切换的解决方法
ubuntu18.04版本,python版本python2.7,python3.5,python3.6 因为安装一些库会安装到python3.6上,而默认使用的是python2.7,使用python3 ...
最新文章
- arduino下载库出错_【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用...
- c语言scarf函数原型,scanf 函数原型.doc
- 738. 单调递增的数字(贪心算法)
- 大油井隐藏的箱子_魔兽世界:历经版本变迁的5大隐藏boss!全部都经历过的才是大神...
- 利用WSUS3.0进行补丁分发
- JavaWeb--JavaEE
- 生日快乐程序员的浪漫代码_python告白代码,只属于程序员的浪漫
- oracle服务没有了 原因,一例oracle服务无法启动的原因及解决方法
- Pg Admin4 无法正常启动
- Win10麦克风显示这个设备正常但是没声音怎么解决
- Element-Plus中 “Loding” 组件的按需引用类型问题
- Systemd中环境变量设置
- 歪解单片机的时钟系统--关于内外时钟切换及时钟超频测试
- 《计算机网络》第三章课后答案第七版谢希仁
- 液晶显示屏的C语言编码,AMPIRE12864液晶C语言代码
- QR码编码原理二(编码)
- RPA 的优点与缺点
- Struts2的OGNL表达式语言
- url中传递中文参数时的转码与解码
- pwrkey直接接地 sim7020_SIM7020C NB-IoT HAT
热门文章
- 在html中怎么去除空白页,word文档里多一张空白页,如何删除?
- 2021-08-30-同事需求--将多个文件夹内的图片合成视频
- android条码系统直接打印出库单笔记
- web 页面防复制防拷贝
- SpringBoot中运行测试:java.lang.NullPointerException
- android 8 s7,不抛弃不放弃:三星正为 S7 系列打造 Android 8.0
- Excel如何提取括号前内容
- 富力•环贸港与阿里云达成战略合作 共同探索“产业+互联网”发展之道
- 用python脚本分类和改名照片和视频
- 第五人格维修服务器中要不要玩,常玩第五人格的人,不要直接打王者,第五后遗症帮你一路上青铜...