matplotlib 设置标注方向_原来Matplotlib绘图也可以这么漂亮,这次真的是学习到了...

本文介绍了如何使用Matplotlib模仿制作具有立体感的商业图表,详细解析了原作品的元素构成,包括立体感的营造、图片插入和数值标注的控制。通过归一化变换和自定义函数,实现了柱状图的等分区域与标注,提供了完整的代码示例,帮助读者轻松创建类似图表。
摘要由CSDN通过智能技术生成

23b6ca28aaaf914912d4ddb8ed0d99fd.gif

文章转自:Python大数据分析

Python数据之道」导读:原来 Matplotlib 绘图也可以这么漂亮,这次真的是学习到了。文末有本文代码及数据文件的获取方式,看了内容并不等于会操作,大家可以动手实践下。

1 简介

新冠疫情对很多实体经济带来冲击的同时,也给很多公司带来了新的增长点。前段时间我看到图1所示的数据可视化作品,针对2020年1月1日到6月16日之间,世界范围内市值增大最多的25家公司进行可视化:

c2d9ded95e60fc2f9aaabd2d78882842.png
图1

这样一张典型的商业图表,看起来形式巧妙,且表现出很多数据信息。而今天的文章,我就将带大家学习如何利用matplotlib来条理清楚地制作出这种类型的可视化作品。

2 模仿过程

首先我们还是像过往的文章中一样分析一下原作品的元素构成:

  • 「立体感的营造」

其实原作品咋一看起来的立体感,只是玩了个花招,我们本质上只需要创建出最左列竖直方向上等分25份的填充区域,再向右偏移适合的距离后,缩小竖直方向上的总体范围再25等分,最后将这两部分等分的填充区域连接起来,最后再为中间的连接区域蒙上一层等大小的带透明度的暗色蒙版即可~

  • 「logo与国旗图片的插入」

原作品中众多图片,只要仔细观察就可以发现是手动PS上去的,存在着一些微小的瑕疵,而我们既然要用matplotlib来制作这张图,当然直接写循环控制图片的插入即可。

matplotlib中向画板插入其他图片有很多方法,我们为了控制好众多logo之间的协调,可以使用matplotlib中的inset_axes()来插入指定位置和尺寸的子图。

  • 「数值标注的控制」

原作品中不同公司市值增长的不同体现在不同长度柱体以及不同大小文字标注的映射之上的,我们可以配合简单的归一化变换,来约束字体和柱体长度的映射。

搞明白原作品中主要元素的实现方式之后,我们首先来读入原始数据:

import matplotlib.pyplot as plt
import pandas as pd

# 设置默认字体
plt.rcParams['font.sans-serif'] = ['Times New Roman']

raw = pd.read_excel('data.xlsx')
raw.head()
4cc272b7b8c7e603c4ed43252185d636.png
图2

接着为了方便处理公司类型向指定配色的映射,我们先来创建一个映射字典:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值