【Python】企业排名、地域分布与词云分析可视化

news2024/11/14 16:34:02

目录

数据处理

Pyecharts

各国数量

分布地图

数量占比

城市分布

营业收入

利润转化


数据处理

2021世界五百强企业数据,包含公司名称、公司链接、营业收入(百万美元)、利润(百万美元)、国家等信息。数据集下载:Python企业排名、地域分布与词云分析数据集资源-CSDN文库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data_path = "./2021世界五百强.xlsx"
df = pd.read_excel(data_path, index_col='排名')
df.head()

 查看缺失情况

data.isnull().sum()

 

若缺失较大可通过插值法填充 

data = data.interpolate()

查看数据形状

data.shape

 

 查看数据类型

data.dtypes

 

 查看数据是否有重复值

data.duplicated().sum()

Pyecharts

Pyecharts库是一个功能强大、易于使用的Python数据可视化库,它基于ECharts(一个使用JavaScript实现的开源可视化库)的强大功能,为Python开发者提供了一套简单易用的接口。通过Pyecharts,用户可以轻松创建出丰富多样的交互式图表,满足不同场景下的数据可视化需求。

类型丰富:Pyecharts支持多种常用的图表类型,包括但不限于折线图、柱状图、散点图、饼图、地图、热力图、雷达图、箱形图、K线图等,能够满足不同场景下的数据可视化需求。

高度定制:用户可以自定义图表的各项属性,如颜色、标题、标签、提示框、图例等,使得生成的图表更符合个人或项目的需求。

易于集成:Pyecharts生成的图表可以直接嵌入到网页中,也可以导出为HTML文件或图片,便于与其他系统进行集成和分享。

简洁API:Pyecharts提供了简洁易用的API接口,使得用户可以通过少量的代码就能生成复杂的图表。此外,它还支持链式调用和函数式调用两种方式,进一步简化了代码编写过程。

多种格式:Pyecharts支持多种数据格式,包括CSV、JSON、pandas数据框等,可以方便地处理来自不同数据源的数据。

交互操作:Pyecharts生成的图表支持交互式操作,如鼠标滚轮缩放、拖拽平移、数据区域选择等,增强了图表的可用性和用户体验。

各国数量

使用Pyecharts库来创建一个条形图(Bar Chart),并在Jupyter Notebook中渲染它。Pyecharts是一个用于生成Echarts图表的Python库,而Echarts是一个使用JavaScript实现的开源可视化库,可以流畅地运行在PC和移动设备上,兼容当前绝大多数浏览器(IE,Chrome, Firefox,Safari等)

result = data['国家'].value_counts().sort_values()
x_data = result.index.tolist()
y_data = result.values.tolist()
bar = Bar(init_opts=opts.InitOpts(width = '900px',height = '900px'))
bar.add_xaxis(x_data)
bar.add_yaxis('',y_data)
bar.reversal_axis()
bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
bar.render_notebook()

 可视化结果表明,在世界五百强企业分布情况中,中国和美国属于第一梯队,日本、德国、法国、英国等相对位于下一梯队。

 

分布地图

可通过pyecharts.charts中的世界地图库绘制地域分布地图,绘制地图时,受限于地图标注语言,需先设置好世界地图中英文名称的映射关系

nameMap = {
        'Singapore Rep.':'新加坡',
        'Dominican Rep.':'多米尼加',
        'Palestine':'巴勒斯坦',
        'Bahamas':'巴哈马',
        'Timor-Leste':'东帝汶',
        'Afghanistan':'阿富汗',
        'Guinea-Bissau':'几内亚比绍',
        "Côte d'Ivoire":'科特迪瓦',
        'Siachen Glacier':'锡亚琴冰川',
        "Br. Indian Ocean Ter.":'英属印度洋领土',
        'Angola':'安哥拉',
        'Albania':'阿尔巴尼亚',
        'United Arab Emirates':'阿联酋',
        'Argentina':'阿根廷',
        'Armenia':'亚美尼亚',
        'French Southern and Antarctic Lands':'法属南半球和南极领地',
        'Australia':'澳大利亚',
        'Austria':'奥地利',
        'Azerbaijan':'阿塞拜疆',
        'Burundi':'布隆迪',
        'Belgium':'比利时',
        'Benin':'贝宁',
        'Burkina Faso':'布基纳法索',
        'Bangladesh':'孟加拉国',
        'Bulgaria':'保加利亚',
        'The Bahamas':'巴哈马',
        'Bosnia and Herz.':'波斯尼亚和黑塞哥维那',
        'Belarus':'白俄罗斯',
        'Belize':'伯利兹',
        'Bermuda':'百慕大',
        'Bolivia':'玻利维亚',
        'Brazil':'巴西',
        'Brunei':'文莱',
        'Bhutan':'不丹',
        'Botswana':'博茨瓦纳',
        'Central African Rep.':'中非',
        'Canada':'加拿大',
        'Switzerland':'瑞士',
        'Chile':'智利',
        'China':'中国',
        'Ivory Coast':'象牙海岸',
        'Cameroon':'喀麦隆',
        'Dem. Rep. Congo':'刚果民主共和国',
        'Congo':'刚果',
        'Colombia':'哥伦比亚',
        'Costa Rica':'哥斯达黎加',
        'Cuba':'古巴',
        'N. Cyprus':'北塞浦路斯',
        'Cyprus':'塞浦路斯',
        'Czech Rep.':'捷克',
        'Germany':'德国',
        'Djibouti':'吉布提',
        'Denmark':'丹麦',
        'Algeria':'阿尔及利亚',
        'Ecuador':'厄瓜多尔',
        'Egypt':'埃及',
        'Eritrea':'厄立特里亚',
        'Spain':'西班牙',
        'Estonia':'爱沙尼亚',
        'Ethiopia':'埃塞俄比亚',
        'Finland':'芬兰',
        'Fiji':'斐',
        'Falkland Islands':'福克兰群岛',
        'France':'法国',
        'Gabon':'加蓬',
        'United Kingdom':'英国',
        'Georgia':'格鲁吉亚',
        'Ghana':'加纳',
        'Guinea':'几内亚',
        'Gambia':'冈比亚',
        'Guinea Bissau':'几内亚比绍',
        'Eq. Guinea':'赤道几内亚',
        'Greece':'希腊',
        'Greenland':'格陵兰',
        'Guatemala':'危地马拉',
        'French Guiana':'法属圭亚那',
        'Guyana':'圭亚那',
        'Honduras':'洪都拉斯',
        'Croatia':'克罗地亚',
        'Haiti':'海地',
        'Hungary':'匈牙利',
        'Indonesia':'印度尼西亚',
        'India':'印度',
        'Ireland':'爱尔兰',
        'Iran':'伊朗',
        'Iraq':'伊拉克',
        'Iceland':'冰岛',
        'Israel':'以色列',
        'Italy':'意大利',
        'Jamaica':'牙买加',
        'Jordan':'约旦',
        'Japan':'日本',
        'Japan':'日本本土',
        'Kazakhstan':'哈萨克斯坦',
        'Kenya':'肯尼亚',
        'Kyrgyzstan':'吉尔吉斯斯坦',
        'Cambodia':'柬埔寨',
        'Korea':'韩国',
        'Kosovo':'科索沃',
        'Kuwait':'科威特',
        'Lao PDR':'老挝',
        'Lebanon':'黎巴嫩',
        'Liberia':'利比里亚',
        'Libya':'利比亚',
        'Sri Lanka':'斯里兰卡',
        'Lesotho':'莱索托',
        'Lithuania':'立陶宛',
        'Luxembourg':'卢森堡',
        'Latvia':'拉脱维亚',
        'Morocco':'摩洛哥',
        'Moldova':'摩尔多瓦',
        'Madagascar':'马达加斯加',
        'Mexico':'墨西哥',
        'Macedonia':'马其顿',
        'Mali':'马里',
        'Myanmar':'缅甸',
        'Montenegro':'黑山',
        'Mongolia':'蒙古',
        'Mozambique':'莫桑比克',
        'Mauritania':'毛里塔尼亚',
        'Malawi':'马拉维',
        'Malaysia':'马来西亚',
        'Namibia':'纳米比亚',
        'New Caledonia':'新喀里多尼亚',
        'Niger':'尼日尔',
        'Nigeria':'尼日利亚',
        'Nicaragua':'尼加拉瓜',
        'Netherlands':'荷兰',
        'Norway':'挪威',
        'Nepal':'尼泊尔',
        'New Zealand':'新西兰',
        'Oman':'阿曼',
        'Pakistan':'巴基斯坦',
        'Panama':'巴拿马',
        'Peru':'秘鲁',
        'Philippines':'菲律宾',
        'Papua New Guinea':'巴布亚新几内亚',
        'Poland':'波兰',
        'Puerto Rico':'波多黎各',
        'Dem. Rep. Korea':'朝鲜',
        'Portugal':'葡萄牙',
        'Paraguay':'巴拉圭',
        'Qatar':'卡塔尔',
        'Romania':'罗马尼亚',
        'Russia':'俄罗斯',
        'Rwanda':'卢旺达',
        'W. Sahara':'西撒哈拉',
        'Saudi Arabia':'沙特阿拉伯',
        'Sudan':'苏丹',
        'S. Sudan':'南苏丹',
        'Senegal':'塞内加尔',
        'Solomon Is.':'所罗门群岛',
        'Sierra Leone':'塞拉利昂',
        'El Salvador':'萨尔瓦多',
        'Somaliland':'索马里兰',
        'Somalia':'索马里',
        'Serbia':'塞尔维亚',
        'Suriname':'苏里南',
        'Slovakia':'斯洛伐克',
        'Slovenia':'斯洛文尼亚',
        'Sweden':'瑞典',
        'Swaziland':'斯威士兰',
        'Syria':'叙利亚',
        'Chad':'乍得',
        'Togo':'多哥',
        'Thailand':'泰国',
        'Tajikistan':'塔吉克斯坦',
        'Turkmenistan':'土库曼斯坦',
        'East Timor':'东帝汶',
        'Trinidad and Tobago':'特里尼达和多巴哥',
        'Tunisia':'突尼斯',
        'Turkey':'土耳其',
        'Tanzania':'坦桑尼亚',
        'Uganda':'乌干达',
        'Ukraine':'乌克兰',
        'Uruguay':'乌拉圭',
        'United States':'美国',
        'Uzbekistan':'乌兹别克斯坦',
        'Venezuela':'委内瑞拉',
        'Vietnam':'越南',
        'Vanuatu':'瓦努阿图',
        'West Bank':'西岸',
        'Yemen':'也门',
        'South Africa':'南非',
        'Zambia':'赞比亚',
        'Zimbabwe':'津巴布韦'
    }

使用Pyecharts库来创建一个世界地图,绘制可视化可交互的世界五百强企业地域分布地图 

from pyecharts import options as opts
from pyecharts.charts import Bar,Map,WordCloud,Grid,Pie
x_data = data['国家'].value_counts().index.tolist()
y_data = data['国家'].value_counts().values.tolist()
map1 = Map()
map1.add('',[list(z) for z in zip(x_data, y_data)], maptype='world',is_map_symbol_show=False, name_map = nameMap) 
map1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
map1.set_global_opts(title_opts=opts.TitleOpts(title='世界五百强企业分布'),visualmap_opts=opts.VisualMapOpts( max_=data['国家'].value_counts().max(),min_ = data['国家'].value_counts().min(),is_piecewise=False),)
map1.render_notebook()

可视化结果表明,亚洲和北美地区世界五百强企业集中较为明显,非洲、南美等地资源相对弱势。

数量占比

使用Pyecharts库创建饼图Pie chart,展示2021年各国进入世界500强的企业数量的百分比

c = (
    Pie(init_opts=opts.InitOpts(width= '1000px',height= '600px'))
    .add(
    '',
    [list(z) for z in zip(result.index.tolist(),result.values.tolist())],
        radius=["30%", "75%"],
        rosetype="area",
    label_opts = opts.LabelOpts(position='right'),
    )
    .set_global_opts(
    title_opts=opts.TitleOpts(title='2021年各国进入500强的企业数量百分比'),
    legend_opts=opts.LegendOpts(is_show=False),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
)
c.render_notebook()

根据可视化结果,可见2021年世界五百强企业名单中中国、美国两国占据超过百分之五十份额,美国、日本、德国逐一减半,世界五百强企业体量占比差距较为悬殊。

城市分布

展示一个条形图,以中国为例,描绘在中国各城市中进入世界500强企业的数量分布情况

data['城市'] = data['字段2'].str.split('(').str[0]
result = data[data['国家']=='中国']
result = result['城市'].value_counts()
x_data = result.index.tolist()
y_data = result.values.tolist()
bar = Bar(init_opts=opts.InitOpts(width = '1000px',height = '500px'))
bar.add_xaxis(x_data)
bar.add_yaxis('',y_data)
bar.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=75)),title_opts=opts.TitleOpts(title="500强企业在中国各城市的数量"))
bar.render_notebook()

可视化结果表明,中国各城市在五百强企业分布上呈现出明显的层级结构。其中,北京以其独特的地理位置、政策优势及经济活力,成为了中国国内五百强企业最为集中的城市,展现出显著的集聚效应。紧随其后的是由香港、上海、深圳和杭州构成的第二梯队,这些城市同样凭借其强大的经济实力、完善的产业体系和创新能力,吸引了大量五百强企业的入驻,形成了较为密集的企业集群。

这一分布格局不仅揭示了不同城市在吸引和培育五百强企业方面的能力和成效,也反映了中国经济在不同区域间的差异化和协同发展态势。同时,这种聚集态势与资源虹吸现象也进一步加剧了城市间的竞争与合作,可能蕴含全国范围内经济结构的优化和升级趋势。

营业收入

将两个列表(公司名称和营业收入)组合使用,使用WordCloud生成词云

x_data = data['公司名称(中文)'].str.split('(').str[0].tolist()
y_data = data['营业收入(百万美元)'].tolist()
wd = WordCloud()
wd.add('', [list(z) for z in zip(x_data, y_data)],shape = 'diamond',emphasis_shadow_color = '#FF7F00')
wd.render_notebook()

生成的可视化数据显示,世界五百强企业的营业收入呈现出显著的差异,这种差异不仅体现了行业内巨头企业与新兴或中小型产业代表之间的鲜明对比,还深刻揭示了不同经济领域之间市场规模的差异性。具体而言,世界五百强企业包括相关领域巨头和相关领域新型产业代表,巨头企业以其庞大的营业收入占据了行业的主导地位,而新兴产业的代表企业则展示了该领域的发展潜力与活力。这可能是对部分领域的市场规模和整体经济结构的一种直观反映。

利润转化

筛选出前10家公司的名称、营业收入和利润,对数据进行清洗,并在一个条形图中同时展示这些公司的名称、营业收入和利润,最后将图表渲染到Jupyter Notebook中。

result = data[['公司名称(中文)','营业收入(百万美元)','利润(百万美元)']][:10].sort_values('营业收入(百万美元)')
result['公司名称(中文)'] = result['公司名称(中文)'].str.split('(').str[0]
result['利润(百万美元)'] = result['利润(百万美元)'].str.replace(',','').astype('float')
x_data = result['公司名称(中文)'].tolist()
y_data = result['利润(百万美元)'].tolist()
grid = Grid()
bar = Bar()
bar.add_xaxis(result['公司名称(中文)'].tolist())
bar.add_yaxis('营业收入(百万美元)',result['营业收入(百万美元)'].tolist())
bar.add_yaxis('利润(百万美元)',result['利润(百万美元)'].tolist())
bar.reversal_axis()
bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
bar.set_global_opts(title_opts=opts.TitleOpts(title="十强利润(百万美元)"))
grid.add(bar,grid_opts = opts.GridOpts(pos_left="20%"))
grid.render_notebook()

生成的可视化数据显示,按照营业收入得到的十强企业中,利润表现同样存在显著的差距。特别值得注意的是,以苹果公司为代表的高新技术企业在这一群体中脱颖而出,展现了极高的利润率。这一趋势不仅凸显了高新技术企业在全球市场竞争中的优势地位,也进一步印证了技术创新与高效运营对于提升企业盈利能力的重要性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2098861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv-python 图像增强十七:泊松图像融合

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、概述二,实现: 前言 在深入探讨图像处理与计算机视觉领域的过程中,我们不禁对图像融合技术的精妙与实用性感到着迷。图像…

物联网之云平台架构

一,一个典型的物联网云平台 一个典型的物联网(IoT)云平台需要实现多个功能,以支持物联网设备的接入、数据处理、设备管理、实时控制等需求。 (一)核心功能 1,设备接入与管理: - 设…

【达梦数据库】DBeaver连接达梦数据库

打开 DBeaver&#xff0c;新建驱动管理器 新建驱动管理器&#xff0c;配置信息如下 添加库文件&#xff0c;jar包使用项目上使用的jdbc驱动包即可&#xff0c;找到本地maven仓库jar位置进行添加。 <dependency><groupId>com.dameng</groupId><artifact…

打开配置好的gee的jupyter Lab环境

目录 打开anconda 打开箭头下的cmd环境&#xff0c;输入jupyter lab

Spring MVC 八股文

目录 重点 SpringMVC的工作原理 Spring MVC 拦截器 Spring MVC 的拦截器和 Filter 过滤器有什么差别&#xff1f; 基础 什么是SpringMVC SpringMVC的优点 Spring MVC的核心组件 Spring MVC的常用注解由有哪些 Controller 注解有什么用 重点 SpringMVC的工作原理 1、客…

人脸静态活体检测(高精度版) API 对接说明

人脸静态活体检测&#xff08;高精度版&#xff09; API 对接说明 本文将介绍人脸静态活体检测&#xff08;高精度版&#xff09;API 对接说明&#xff0c;它可用于对用户上传的静态图片进行防翻拍活体检测&#xff0c;以判断是否是翻拍图片。 接下来介绍下 人脸静态活体检测…

浅谈sizeof() 函数在Arduino中的使用

下面浅谈 sizeof() 函数在Arduino中的使用 注意&#xff1a;这里用sizeof(str[2])&#xff0c;sizeof(str[0])&#xff0c;sizeof(str[1])都是一样的 String str[6]{"abc","defg","hijk","lm","n"}; int num; void setup…

C++项目详细分析_WebServer

前言 项目地址 项目介绍 源码详细分析 项目路径如下&#xff1a; 1.webserver.cpp 头文件和构造函数 #include "webserver.h"WebServer::WebServer() {// http_conn类对象users new http_conn[MAX_FD];// root文件夹路径char server_path[200];getcwd(server…

【C++】N卡无法录制,如何下载C++

N卡无法录制&#xff0c;如何下载C C 官方下载路径&#xff1a; https://www.microsoft.com/zh-cn/download/details.aspx?id48145&134b2bb0-86c1-fe9f-d523-281faef416951&751be11f-ede8-5a0c-058c-2ee190a24fa6True 第一步 检查N卡驱动是不是最新版本 第二步 下载…

拓扑结构_替代SN6505推挽式低噪声隔离变压驱动器输出功率1-3W

PC6505 是一款专门为小体积、低待机功耗微功率隔离电源而设计的推挽式变压器驱动器&#xff0c;其外围只需匹配简单的输入输出滤波电容、隔离变压器和整流电路&#xff0c;即可实现 3.3V 或 5V 输入、3.3V~24V 输出、输出功率 1~3W 的隔离电源。 PC6505 芯片内部集成振荡器&am…

简单的棒棒图绘制教程

原文教程链接&#xff1a;R 语言绘图 | GO、KEGG等富集棒棒图 往期部分文章 1. 最全WGCNA教程&#xff08;替换数据即可出全部结果与图形&#xff09; WGCNA分析 | 全流程分析代码 | 代码一 WGCNA分析 | 全流程分析代码 | 代码二 WGCNA分析 | 全流程代码分享 | 代码三 WGC…

stun和trun

在 WebRTC 中&#xff0c;STUN&#xff08;Session Traversal Utilities for NAT&#xff09;和 TURN&#xff08;Traversal Using Relays around NAT&#xff09;是用于NAT穿透的两种不同的技术&#xff0c;它们解决的问题不同&#xff0c;因此在某些情况下需要同时使用。 ST…

VM虚拟机:虚拟机能ping通主机,主机ping不通虚拟机,永久解决办法。

最近在安装VM虚拟机的时候,出现了虚拟机能ping通主机,主机ping不通虚拟机。着实令人恶心,尤其是虚拟机在设置网络的时候,网上五花八门,修改什么配置的都有,最多的就是修改宿主机的ipv4,这种我个人感觉不可取。宿主机不要乱改配置,需要修改尽量在虚拟机中修改即可。 还需…

el-time-select 动态增加时间

<template><div><div v-for"(item, index) in timeSlots" :key"index"><el-time-select placeholder"起始时间" v-model"item.startTime" :picker-options"{start: 00:00,step: 00:15,end: 23:59,}"&g…

VMware安装windows虚拟机详细过程

目录 准备工作配置虚拟机为虚拟机设置操作系统镜像安装windows10 准备工作 安装好VMware软件并激活&#xff0c;激活码自行查找 准备好系统镜像文件&#xff0c;可以在MSDN中下载&#xff0c;地址&#xff1a;https://next.itellyou.cn/ 配置虚拟机 选择自定义 默认 选择稍后…

C语言操作符详解1(含进制转换,原反补码)

文章目录 一、操作符的分类二、二进制和进制转换1.二进制与十进制的相互转换2,二进制与八进制的相互转换3.二进制与十六进制的相互转换 三、原码、反码和补码四、移位操作符1.左移操作符&#xff08;1&#xff09;左移操作符移位方法&#xff08;2&#xff09;左移操作符规律总…

编程要由 “手动挡” 变 “自动挡” 了?Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了&#xff01;他最近在试用 VS Code Cursor Claude Sonnet 3.5&#xff0c;结果发现这玩意儿比 GitHub Copilot 还好用&#xff01; Cursor 在短短时间内迅速成为程序员群体的顶流神器&#xff0c;其背后的原因在于其默认使…

代码随想录 刷题记录-24 图论 (1)理论基础 、深搜与广搜

一、理论基础 参考&#xff1a; 图论理论基础 深度优先搜索理论基础 广度优先搜索理论基础 dfs dfs搜索可一个方向&#xff0c;并需要回溯&#xff0c;所以用递归的方式来实现是最方便的。 有递归的地方就有回溯&#xff0c;例如如下代码&#xff1a; void dfs(参数) {…

一份高质量的测试用例如何养成?

测试一个新功能时&#xff0c;最重要的一个步骤就是编写测试用例&#xff0c;测试用例写好了&#xff0c;那么后面的测试工作基本就非常顺利了&#xff0c;那么怎样提高测试用例的质量呢&#xff1f; 充分理解需求 拿到测试需求后&#xff0c;不应该拿到什么就是什么&#xf…

【esp32】VScode添加库

以添加PubSubClient库为例 如图操作&#xff0c;在搜索框输入PubSubClient&#xff0c;点击下载 给你的某一个工程添加该库 编译成功