Python + PPT 复刻了一张美丽的气泡图!

 

肝了三个晚上,终于复制了一张好看的图,图1 是原图,气泡图来表示三个维度的数据,颜色搭配很绝,简直是视觉上的享受😎!

🔧🔧使用工具:python matplotlib + PPT

🎨🎨绘制过程:

# 01. 读取本地 excel 数据
import pandas as pd
data = pd.read_excel('The 20 Fastest Growing Jobs in the Next Decade.xlsx')

# 选择x,y轴数据和第三个维度数据值(作为气泡大小)
x = data['Median annual wage'] / 1000
y = data['Percent employment change'] 
s = abs(data['Numeric employment change'])/20 # 把数据值变为绝对值,从而显示增长为负的数据

#02. 绘图
import matplotlib.pyplot as plt
fig,ax  = plt.subplots(figsize=(12,18),dpi=600) # 设置画布大小和背景色,图片分辨率

#设置坐标系背景色
fig.set_facecolor("#EAE0D5") 
#设置坐标系背景色
ax.patch.set_facecolor("#EAE0D5") 

#设置颜色,将数据分为5类
colors = {1:'#91b8c7',2:'#ef9d6e',3:'#6BBBAE',4:'#7757B1',5:'#F0BF6A'}

#使用 scatter 方法绘制,传入两轴数据,气泡大小,颜色
ax.scatter(x = x,y=y,s=s, color=[colors[i] for i in data['color']],edgecolors='white',alpha = 0.9)#alpha 设置透明度,避免气泡遮挡

#设置y轴的名称和字体大小
ax.set_ylabel('Employment change %',fontsize=14,alpha=0.5)

#设置标题
ax.set_title(label = 'The 20 Fastest Growing Jobs in the Next Decade',fontsize=20)

# 在 y = 0 的位置绘制水平直线,当做 x 轴
ax.axhline(y=0,ls="-",c="black",alpha=0.5)

#设置水平直线的显示数据
ax.text(20,0.01,'$20k',fontsize=14,alpha=0.5)
ax.text(40,0.01,'$40k',fontsize=14,alpha=0.5)
ax.text(60,0.01,'$60k',fontsize=14,alpha=0.5)
ax.text(80,0.01,'$80k',fontsize=14,alpha=0.5)
ax.text(100,0.01,'$100k',fontsize=14,alpha=0.5)

# 设置水平直线的名称
ax.text(50,-0.02,'Median annual wage 2020',fontsize=14,alpha=0.5)

#设置两个轴的刻度标签
ax.set_yticklabels(['-60%','-40%','-20%','0','20%','40%','60%','80%'],fontsize=14,alpha=0.5)
ax.set_xticks([]) # 设为空

#关闭四周边框
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False);
ax.tick_params(left=False) # 不显示两轴刻度线
# 打开网格线,zorder 置于画布的较底层
ax.grid(alpha=0.2,zorder=-100)
# 保存图片
fig.savefig('new.jpg')
plt.show();

然后在PPT中加入说明和图例,最终美化就搞定啦

关注我,一起学习让数据图表更美丽的技巧!方法全分享!

评论取代码和数据,必回嗷

#python #数据可视化 #matplotlib #设计

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值