可视化编程语言_可视化编程语言影响图

可视化编程语言 Gephi和Sigma.js的网络可视化教程 (A network visualization tutorial with Gephi and Sigma.js)Here’s a preview of what we’ll be making today: the programming languages influence graph. Check out the link ...
摘要由CSDN通过智能技术生成

可视化编程语言

Gephi和Sigma.js的网络可视化教程 (A network visualization tutorial with Gephi and Sigma.js)

Here’s a preview of what we’ll be making today: the programming languages influence graph. Check out the link to explore the “design influence” relationships between over 250 programming languages past and present!

这是我们今天要做的预览: 编程语言影响图 。 查看链接,探索过去和现在超过250种编程语言之间的“设计影响力”关系!

轮到你! (Your turn!)

In today’s hyper-connected world, networks are an ubiquitous aspect of modern life.

在当今高度连接的世界中,网络是现代生活中无处不在的方面。

Take the start of my day so far — I used London’s transport network to travel into town. Then I went into a branch of my favourite coffee shop and used my Chromebook to connect to their Wi-Fi network. Next, I logged in to the various social networking sites I frequent.

到目前为止,我已经开始了新的一天-我使用伦敦的交通网络前往市区。 然后,我去了我最喜欢的咖啡店的一家分店 ,并用我的Chromebook连接到他们的Wi-Fi网络 。 接下来,我登录了我经常访问的各种社交网站。

It’s no secret that some of the most influential companies of the last few decades owe their success to the power of networks.

过去几十年来一些最有影响力的公司将其成功归功于网络的力量已经不是什么秘密了。

Facebook, Twitter, Instagram, LinkedIn and other social media platforms rely on the small-world properties of social networks. This lets them connect their users with each other (and advertisers) effectively.

Facebook,Twitter,Instagram,LinkedIn和其他社交媒体平台依赖于社交网络的小世界特性。 这样一来,他们就可以有效地将用户(和广告客户)彼此联系起来。

Google owes much of its current success to their early dominance of the search engine market — enabled in part through their ability to return relevant results with the help of their Page Rank network algorithm.

Google的当前成功主要归功于其在搜索引擎市场的早期统治地位-部分是由于他们借助Page Rank网络算法能够返回相关结果的能力。

Amazon’s efficient distribution network allows them to offer same-day delivery in some major cities.

亚马逊的高效分销网络使他们能够在一些主要城市提供当天送货服务。

Networks are also super-important in fields such as Artificial Intelligence and Machine Learning. Neural networks are a very active field of research. Many feature detection algorithms, essential in Computer Vision, rely heavily on using networks to model different parts of images.

网络在人工智能和机器学习等领域也非常重要。 神经网络是一个非常活跃的研究领域。 在计算机视觉中必不可少的许多功能检测算法都严重依赖于使用网络对图像的不同部分进行建模

A wide range of scientific phenomena can also be understood in terms of network models. This includes quantum mechanics, biochemical pathways, and ecological and socio-economic systems.

通过网络模型也可以理解各种各样的科学现象。 这包括量子力学生化途径以及生态社会经济系统

Given their undeniable importance, then, how can we better understand networks and their properties?

鉴于它们不可否认的重要性,那么,我们如何才能更好地理解网络及其属性?

The mathematical study of networks is known as “graph theory”, and is one of the more accessible branches of mathematics. This article aims to provide an introduction, assuming little prior knowledge or experience.

网络的数学研究被称为“ 图论 ”,是数学中较易获得的分支之一。 本文旨在提供介绍,假定您几乎没有先验知识或经验。

We’ll be using Python 3.x and some awesome open-source software called Gephi to put together a network visualization of how a range of programming languages past and present are linked by influence.

我们将使用Python 3.x和一些很棒的开源软件Gephi ,将网络过去和现在的各种编程语言如何通过影响联系在一起的可视化网络。

但首先… (But first…)

What exactly is a network?

网络到底是什么?

The examples described above give us some clues. Transport networks are made up of destinations connected by routes. Social networks are made up of individuals, connected through their relationships to one another. Google’s search engine algorithms evaluate the “rank” of different webpages by looking at which pages link out to others.

上述示例为我们提供了一些线索。 运输网络由路线连接的目的地组成。 社交网络由个人组成 ,通过彼此之间的关系相互联系。 Google的搜索引擎算法通过查看哪些页面链接到其他页面来评估不同网页的“排名”。

More generally, a network is any system that can be described in terms of nodes and edges, or in colloquial terms, “dots and lines”.

更一般而言,网络是可以用节点描述的任何系统 边缘 (俗称“点和线”)。

Some systems are readily abstracted in this manner. Social networks are perhaps the most obvious example. Computer filesystems are another — folders and files are linked by their “parent” and “child” relationships.

一些系统很容易以这种方式抽象。 社交网络也许是最明显的例子。 计算机文件系统是另一种-文件夹和文件通过它们的“父”和“子”关系链接。

But the real power of networks comes from the fact that many, many systems can be abstracted and modelled in network terms, even if at first it isn’t obvious how.

但是网络的真正力量来自这样一个事实,即可以用网络术语对许多系统进行抽象和建模,即使起初并不清楚如何实现。

代表网络 (Representing networks)

We need to go a little beyond pen-and-paper sketches to analyze and describe networks mathematically. How can we turn pictures of dots and lines into numbers we can crunch?

我们需要超出纸本草图的范围,以数学方式分析和描述网络。 我们如何将点和线的图片转换为可以处理的数字?

One solution is to draw up an adjacency matrix to represent our network.

一种解决方案是绘制一个邻接矩阵来表示我们的网络。

Matrices are one of those concepts that might sound a little intimidating if you’re not familiar with them, but fear not. Think of them as grids of numbers which can be used to perform many calculations all at once. Here’s an example below:

如果您不熟悉矩阵,这些概念可能听起来有些吓人,但不要害怕。 将它们视为数字网格,可以一次执行许多计算。 下面是一个示例:

Python Java Scala C#
Python     0    1     0  0
Java       0    0     0  1
Scala      0    1     0  0
C#         0    1     0  0

In this matrix, the intersection of each row and column is either 0 or 1, depending on whether or not the respective languages are linked. You can check this against the illustration above!

在此矩阵中,每一行和每一列的交集为0或1,这取决于是否链接了相应的语言。 您可以对照上图进行检查!

For most purposes, the adjacency matrix is a good way of representing a network mathematically. From a computational perspective, however, it can sometimes be a bit cumbersome.

对于大多数目的,邻接矩阵是数学上表示网络的一种好方法。 但是,从计算角度来看,有时可能会有些麻烦。

For instance, with even a relatively modest number of nodes (say 1000), there will be a much larger number of elements in the matrix (e.g., 1000² = 1,000,000).

例如,即使节点数量相对较少(例如1000个),矩阵中的元素数量也会大得多(例如1000²= 1,000,000)。

Many real-world systems yield sparse networks. In these networks, most nodes only connect to a small proportion of all the others.

许多现实世界的系统都会产生稀疏网络 。 在这些网络中,大多数节点仅连接到所有其他节点的一小部分。

If we represented a 1000-node sparse network in computer memory as an adjacency matrix, we’d have 1,000,000 bytes of data stored in RAM. Most will be zeros. There’s got to be a more efficient way of going about this.

如果将计算机内存中的1000个节点的稀疏网络表示为邻接矩阵,则RAM中将存储1,000,000字节的数据。 多数将为零。 必须有一种更有效的解决方法。

An alternative approach is to work with edge lists instea

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值