用python制作炫酷吊炸天多子图,matplotlib之subplot()的应用

前言:

为了让自己的图片更加炫酷,我们今天请到了嘉宾subplot()函数,可以让我们实现多子图的效果。数据采用的是18年美赛E题的数据。在进行标准化处理以后进行的可视化。先上效果图

用python制作炫酷吊炸天多子图,matplotlib之subplot()的应用_第1张图片

是不是准备好学习了,GO!GO!GO!


目录

一、函数介绍

二、相关代码及数据

2.1 数据处理及展示

2.2 全部代码含注释

最终结果:


一、函数介绍

1.plt.subplot(nrows,ncols,index) 创建子图
2. nrows参数指定将数据图区域划分成几行
3. ncols参数指定将数据图区域分成多少列
4. index 参数指定获取第几个区域

二、相关代码及数据

2.1 数据处理及展示

2018年的美赛E题是制作国家脆弱性指数预测模型,数据来自于题目中提供的网址。数据一共有12项指标,为了统一,我们进行最大最小标准化法进行0-1标准化。

用python制作炫酷吊炸天多子图,matplotlib之subplot()的应用_第2张图片

2.2 全部代码含注释

如果不知道怎么怎么读取数据可以参考我之前的博客pandas读取数据https://blog.csdn.net/Eli_change/article/details/112256966以及python文件导入用matplotlib制作图片设置标注小白入门,功能性代码,包学包会,文章略长https://blog.csdn.net/Eli_change/article/details/107437468

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体
plt.rcParams['axes.unicode_minus'] = False  # 设置正负号
fig = plt.figure(figsize=(15,13),dpi=80) # 设置图片的大小以及不透明度
# 因为是在jupyter notebook 里运行,所以x轴以这种方式写入
z=[]


for i in range(len(df['C1: Security Apparatus'])):
    z.append(i)
plt.subplot(4,3,1)  # 创建4行3列的图,第一张,以此类推
plt.bar(z,df['C1: Security Apparatus'],color='orange')
plt.xticks(range(30),[],rotation=90)  # 替换x轴不显示,为了美观,只显示最后一行的
plt.title('C1: Security Apparatus')


plt.subplot(4,3,2) 
plt.bar(z,df['C2: Factionalized Elites'],color='r')
plt.title('C2: Factionalized Elites')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,3) 
plt.bar(z,df['C3: Group Grievance'],color='skyblue')
plt.title('C3: Group Grievance')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,4) 
plt.bar(z,df['E1: Economy'],color='pink')
plt.title('E1: Economy')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,5) 
plt.bar(z,df['E2: Economic Inequality'],color='green')
plt.title('E2: Economic Inequality')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,6) 
plt.bar(z,df['E3: Human Flight and Brain Drain'],color='purple')
plt.title('E3: Human Flight and Brain Drain')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,7) 
plt.bar(z,df['P1: State Legitimacy'],color='yellow')
plt.title('P1: State Legitimacy')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,8) 
plt.bar(z,df['P2: Public Services'],color='c')
plt.title('P2: Public Services')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,9) 
plt.bar(z,df['P3: Human Rights'],color='brown')
plt.title('P3: Human Rights')
plt.xticks(range(30),[],rotation=90)


plt.subplot(4,3,10) 
plt.bar(z,df['S1: Demographic Pressures'],color='lightblue')
plt.title('S1: Demographic Pressures')
plt.xticks(range(30),df['Country'],rotation=90)

plt.subplot(4,3,11) 
plt.bar(z,df['S2: Refugees and IDPs'],color='#FFFACD')
plt.title('S2: Refugees and IDPs')
plt.xticks(range(30),df['Country'],rotation=90)

plt.subplot(4,3,12) 
plt.bar(z,df['X1: External Intervention'],color='#228B22')
plt.title('X1: External Intervention')
plt.xticks(range(30),df['Country'],rotation=90)
plt.show()

最终结果:

用python制作炫酷吊炸天多子图,matplotlib之subplot()的应用_第3张图片

如果对你有用,麻烦点赞,谢谢!

 

你可能感兴趣的:(数据分析的那些事,python,数据分析,数据可视化,matplotlib,大数据)