再见Excel,这个Python数据可视化库太炫酷了转载
原创来源:Web来源:Network来源:Internet来源:Web
由以下代码生成,该代码是从以下代码生成的
from chord import Chord
matrix = [
[0, 5, 6, 4, 7, 4],
[5, 0, 5, 4, 6, 5],
[6, 5, 0, 4, 5, 5],
[4, 4, 4, 0, 5, 5],
[7, 6, 5, 5, 0, 4],
[4, 5, 5, 5, 4, 0],
]
names = ["Action", "Adventure", "Comedy", "Drama", "Fantasy", "Thriller"]
# 保存
Chord(matrix, names).to_html("chord-diagram.html")
强大的图形演示!强大的图形呈现能力!强烈的图形表现力!强大的图形演示!
Altair概述
Altair是一个应用程序是一个工具它是一个应用程序是一个用来Python声明性统计可视化库,基于Vega和Vega-Lite。
Altair提供强大而简洁的可视化语法,使您可以快速构建广泛的统计可视化。这是一个可视化的使用Altair API通过交互式散点图快速可视化数据集的示例。
Github:
https://altair-viz.github.io/getting\_started/overview.html
表现强悍
强大的图形演示!强大的图形呈现能力!强烈的图形表现力!强大的图形演示!
import matplotlib.pyplot as plt
# 创建数据
size_of_groups = [12, 11, 3, 30]
# 生成饼图
plt.pie(size_of_groups)
# 在中心添加一个圆在中心添加一个圆在中心添加一个圆, 生成环图生成环生成环
my_circle = plt.Circle((0, 0), 0.7, color=white)
p = plt.gcf()
p.gca().add_artist(my_circle)
plt.show()
image.png
import matplotlib.pyplot as plt
from matplotlib_venn import venn2
# 创建图表
venn2(subsets=(10, 5, 2), set_labels=(Group A, Group B))
# 显示
plt.show()
image.png
import circlify
import matplotlib.pyplot as plt
# 创建画布, 包含子图包含子图包含子图
fig, ax = plt.subplots(figsize=(14, 14))
# 标题
ax.set_title(Repartition of the world population)
# 移除轴移除轴
ax.axis(off)
# 人口数据
data = [{id: World, datum: 6964195249, children: [
{id: "North America", datum: 450448697,
children: [
{id: "United States", datum: 308865000},
{id: "Mexico", datum: 107550697},
{id: "Canada", datum: 34033000}
]},
{id: "South America", datum: 278095425,
children: [
{id: "Brazil", datum: 192612000},
{id: "Colombia", datum: 45349000},
{id: "Argentina", datum: 40134425}
]},
{id: "Europe", datum: 209246682,
children: [
{id: "Germany", datum: 81757600},
{id: "France", datum: 65447374},
{id: "United Kingdom", datum: 62041708}
]},
{id: "Africa", datum: 311929000,
children: [
{id: "Nigeria", datum: 154729000},
{id: "Ethiopia", datum: 79221000},
{id: "Egypt", datum: 77979000}
]},
{id: "Asia", datum: 2745929500,
children: [
{id: "China", datum: 1336335000},
{id: "India", datum: 1178225000},
{id: "Indonesia", datum: 231369500}
]}
]}]
# 使用circlify()计算, 获取圆的大小获取圆的大小, 位置
circles = circlify.circlify(
data,
show_enclosure=False,
target_enclosure=circlify.Circle(x=0, y=0, r=1)
)
lim = max(
max(
abs(circle.x) + circle.r,
abs(circle.y) + circle.r,
)
for circle in circles
)
plt.xlim(-lim, lim)
plt.ylim(-lim, lim)
for circle in circles:
if circle.level != 2:
continue
x, y, r = circle
ax.add_patch(plt.Circle((x, y), r, alpha=0.5, linewidth=2, color="lightblue"))
for circle in circles:
if circle.level != 3:
continue
x, y, r = circle
label = circle.ex["id"]
ax.add_patch(plt.Circle((x, y), r, alpha=0.5, linewidth=2, color="#69b3a2"))
plt.annotate(label, (x, y), ha=center, color="white")
for circle in circles:
if circle.level != 2:
continue
x, y, r = circle
label = circle.ex["id"]
plt.annotate(label, (x, y), va=center, ha=center, bbox=dict(facecolor=white, edgecolor=black, boxstyle=round, pad=.5))
plt.show()
image.png
import folium
import pandas as pd
# 创建地图对象创建地图对象创建地图对象
m = folium.Map(location=[20,0], tiles="OpenStreetMap", zoom_start=2)
# 坐标点数据坐标点数据
data = pd.DataFrame({
lon: [-58, 2, 145, 30.32, -4.03, -73.57, 36.82, -38.5],
lat: [-34, 49, -38, 59.93, 5.33, 45.52, -1.29, -12.97],
name: [Buenos Aires, Paris, melbourne, St Petersbourg, Abidjan, Montreal, Nairobi, Salvador],
value: [10, 12, 40, 70, 23, 43, 100, 43]
}, dtype=str)
# 添加气泡
for i in range(0, len(data)):
folium.Circle(
location=[data.iloc[i][lat], data.iloc[i][lon]],
popup=data.iloc[i][name],
radius=float(data.iloc[i][value])*20000,
color=crimson,
fill=True,
fill_color=crimson
).add_to(m)
# 保存
m.save(bubble-map.html)
image.png
import altair as alt
from vega_datasets import data
boroughs = alt.topo_feature(data.londonBoroughs.url, boroughs)
tubelines = alt.topo_feature(data.londonTubeLines.url, line)
centroids = data.londonCentroids.url
background = alt.Chart(boroughs).mark_geoshape(
stroke=white,
strokeWidth=2
).encode(
color=alt.value(#eee),
).properties(
width=700,
height=500
)
labels = alt.Chart(centroids).mark_text().encode(
longitude=cx:Q,
latitude=cy:Q,
text=bLabel:N,
size=alt.value(8),
opacity=alt.value(0.6)
).transform_calculate(
"bLabel", "indexof (datum.name, ) > 0 ? substring(datum.name,0,indexof(datum.name, )) : datum.name"
)
line_scale = alt.Scale(domain=["Bakerloo", "Central", "Circle", "District", "DLR",
"Hammersmith & City", "Jubilee", "Metropolitan", "Northern",
"Piccadilly", "Victoria", "Waterloo & City"],
range=["rgb(137,78,36)", "rgb(220,36,30)", "rgb(255,206,0)",
"rgb(1,114,41)", "rgb(0,175,173)", "rgb(215,153,175)",
"rgb(106,114,120)", "rgb(114,17,84)", "rgb(0,0,0)",
"rgb(0,24,168)", "rgb(0,160,226)", "rgb(106,187,170)"])
lines = alt.Chart(tubelines).mark_geoshape(
filled=False,
strokeWidth=2
).encode(
alt.Color(
id:N,
legend=alt.Legend(
title=None,
orient=bottom-right,
offset=0
),
scale=line_scale
)
)
background + labels + lines
image.png
import altair as alt
from vega_datasets import data
source = data.disasters.url
alt.Chart(source).mark_circle(
opacity=0.8,
stroke=black,
strokeWidth=1
).encode(
alt.X(Year:O, axis=alt.Axis(labelAngle=0)),
alt.Y(Entity:N),
alt.Size(Deaths:Q,
scale=alt.Scale(range=[0, 4000]),
legend=alt.Legend(title=Annual Global Deaths)
),
alt.Color(Entity:N, legend=None)
).properties(
width=450,
height=320
).transform_filter(
alt.datum.Entity != All natural disasters
)
image.png
import altair as alt
import pandas as pd
source = pd.DataFrame([
{country: Great Britain, animal: cattle},
{country: Great Britain, animal: cattle},
{country: Great Britain, animal: cattle},
{country: Great Britain, animal: pigs},
{country: Great Britain, animal: pigs},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: Great Britain, animal: sheep},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: cattle},
{country: United States, animal: pigs},
{country: United States, animal: pigs},
{country: United States, animal: pigs},
{country: United States, animal: pigs},
{country: United States, animal: pigs},
{country: United States, animal: pigs},
{country: United States, animal: sheep},
{country: United States, animal: sheep},
{country: United States, animal: sheep},
{country: United States, animal: sheep},
{country: United States, animal: sheep},
{country: United States, animal: sheep},
{country: United States, animal: sheep}
])
domains = [person, cattle, pigs, sheep]
shape_scale = alt.Scale(
domain=domains,
range=[
M1.7 -1.7h-0.8c0.3 -0.2 0.6 -0.5 0.6 -0.9c0 -0.6 -0.4 -1 -1 -1c-0.6 0 -1 0.4 -1 1c0 0.4 0.2 0.7 0.6 0.9h-0.8c-0.4 0 -0.7 0.3 -0.7 0.6v1.9c0 0.3 0.3 0.6 0.6 0.6h0.2c0 0 0 0.1 0 0.1v1.9c0 0.3 0.2 0.6 0.3 0.6h1.3c0.2 0 0.3 -0.3 0.3 -0.6v-1.8c0 0 0 -0.1 0 -0.1h0.2c0.3 0 0.6 -0.3 0.6 -0.6v-2c0.2 -0.3 -0.1 -0.6 -0.4 -0.6z,
M4 -2c0 0 0.9 -0.7 1.1 -0.8c0.1 -0.1 -0.1 0.5 -0.3 0.7c-0.2 0.2 1.1 1.1 1.1 1.2c0 0.2 -0.2 0.8 -0.4 0.7c-0.1 0 -0.8 -0.3 -1.3 -0.2c-0.5 0.1 -1.3 1.6 -1.5 2c-0.3 0.4 -0.6 0.4 -0.6 0.4c0 0.1 0.3 1.7 0.4 1.8c0.1 0.1 -0.4 0.1 -0.5 0c0 0 -0.6 -1.9 -0.6 -1.9c-0.1 0 -0.3 -0.1 -0.3 -0.1c0 0.1 -0.5 1.4 -0.4 1.6c0.1 0.2 0.1 0.3 0.1 0.3c0 0 -0.4 0 -0.4 0c0 0 -0.2 -0.1 -0.1 -0.3c0 -0.2 0.3 -1.7 0.3 -1.7c0 0 -2.8 -0.9 -2.9 -0.8c-0.2 0.1 -0.4 0.6 -0.4 1c0 0.4 0.5 1.9 0.5 1.9l-0.5 0l-0.6 -2l0 -0.6c0 0 -1 0.8 -1 1c0 0.2 -0.2 1.3 -0.2 1.3c0 0 0.3 0.3 0.2 0.3c0 0 -0.5 0 -0.5 0c0 0 -0.2 -0.2 -0.1 -0.4c0 -0.1 0.2 -1.6 0.2 -1.6c0 0 0.5 -0.4 0.5 -0.5c0 -0.1 0 -2.7 -0.2 -2.7c-0.1 0 -0.4 2 -0.4 2c0 0 0 0.2 -0.2 0.5c-0.1 0.4 -0.2 1.1 -0.2 1.1c0 0 -0.2 -0.1 -0.2 -0.2c0 -0.1 -0.1 -0.7 0 -0.7c0.1 -0.1 0.3 -0.8 0.4 -1.4c0 -0.6 0.2 -1.3 0.4 -1.5c0.1 -0.2 0.6 -0.4 0.6 -0.4z,
M1.2 -2c0 0 0.7 0 1.2 0.5c0.5 0.5 0.4 0.6 0.5 0.6c0.1 0 0.7 0 0.8 0.1c0.1 0 0.2 0.2 0.2 0.2c0 0 -0.6 0.2 -0.6 0.3c0 0.1 0.4 0.9 0.6 0.9c0.1 0 0.6 0 0.6 0.1c0 0.1 0 0.7 -0.1 0.7c-0.1 0 -1.2 0.4 -1.5 0.5c-0.3 0.1 -1.1 0.5 -1.1 0.7c-0.1 0.2 0.4 1.2 0.4 1.2l-0.4 0c0 0 -0.4 -0.8 -0.4 -0.9c0 -0.1 -0.1 -0.3 -0.1 -0.3l-0.2 0l-0.5 1.3l-0.4 0c0 0 -0.1 -0.4 0 -0.6c0.1 -0.1 0.3 -0.6 0.3 -0.7c0 0 -0.8 0 -1.5 -0.1c-0.7 -0.1 -1.2 -0.3 -1.2 -0.2c0 0.1 -0.4 0.6 -0.5 0.6c0 0 0.3 0.9 0.3 0.9l-0.4 0c0 0 -0.4 -0.5 -0.4 -0.6c0 -0.1 -0.2 -0.6 -0.2 -0.5c0 0 -0.4 0.4 -0.6 0.4c-0.2 0.1 -0.4 0.1 -0.4 0.1c0 0 -0.1 0.6 -0.1 0.6l-0.5 0l0 -1c0 0 0.5 -0.4 0.5 -0.5c0 -0.1 -0.7 -1.2 -0.6 -1.4c0.1 -0.1 0.1 -1.1 0.1 -1.1c0 0 -0.2 0.1 -0.2 0.1c0 0 0 0.9 0 1c0 0.1 -0.2 0.3 -0.3 0.3c-0.1 0 0 -0.5 0 -0.9c0 -0.4 0 -0.4 0.2 -0.6c0.2 -0.2 0.6 -0.3 0.8 -0.8c0.3 -0.5 1 -0.6 1 -0.6z,
M-4.1 -0.5c0.2 0 0.2 0.2 0.5 0.2c0.3 0 0.3 -0.2 0.5 -0.2c0.2 0 0.2 0.2 0.4 0.2c0.2 0 0.2 -0.2 0.5 -0.2c0.2 0 0.2 0.2 0.4 0.2c0.2 0 0.2 -0.2 0.4 -0.2c0.1 0 0.2 0.2 0.4 0.1c0.2 0 0.2 -0.2 0.4 -0.3c0.1 0 0.1 -0.1 0.4 0c0.3 0 0.3 -0.4 0.6 -0.4c0.3 0 0.6 -0.3 0.7 -0.2c0.1 0.1 1.4 1 1.3 1.4c-0.1 0.4 -0.3 0.3 -0.4 0.3c-0.1 0 -0.5 -0.4 -0.7 -0.2c-0.3 0.2 -0.1 0.4 -0.2 0.6c-0.1 0.1 -0.2 0.2 -0.3 0.4c0 0.2 0.1 0.3 0 0.5c-0.1 0.2 -0.3 0.2 -0.3 0.5c0 0.3 -0.2 0.3 -0.3 0.6c-0.1 0.2 0 0.3 -0.1 0.5c-0.1 0.2 -0.1 0.2 -0.2 0.3c-0.1 0.1 0.3 1.1 0.3 1.1l-0.3 0c0 0 -0.3 -0.9 -0.3 -1c0 -0.1 -0.1 -0.2 -0.3 -0.2c-0.2 0 -0.3 0.1 -0.4 0.4c0 0.3 -0.2 0.8 -0.2 0.8l-0.3 0l0.3 -1c0 0 0.1 -0.6 -0.2 -0.5c-0.3 0.1 -0.2 -0.1 -0.4 -0.1c-0.2 -0.1 -0.3 0.1 -0.4 0c-0.2 -0.1 -0.3 0.1 -0.5 0c-0.2 -0.1 -0.1 0 -0.3 0.3c-0.2 0.3 -0.4 0.3 -0.4 0.3l0.2 1.1l-0.3 0l-0.2 -1.1c0 0 -0.4 -0.6 -0.5 -0.4c-0.1 0.3 -0.1 0.4 -0.3 0.4c-0.1 -0.1 -0.2 1.1 -0.2 1.1l-0.3 0l0.2 -1.1c0 0 -0.3 -0.1 -0.3 -0.5c0 -0.3 0.1 -0.5 0.1 -0.7c0.1 -0.2 -0.1 -1 -0.2 -1.1c-0.1 -0.2 -0.2 -0.8 -0.2 -0.8c0 0 -0.1 -0.5 0.4 -0.8z
]
)
color_scale = alt.Scale(
domain=domains,
range=[rgb(162,160,152), rgb(194,81,64), rgb(93,93,93), rgb(91,131,149)]
)
alt.Chart(source).mark_point(filled=True, opacity=1, size=100).encode(
alt.X(x:O, axis=None),
alt.Y(animal:O, axis=None),
alt.Row(country:N, header=alt.Header(title=)),
alt.Shape(animal:N, legend=None, scale=shape_scale),
alt.Color(animal:N, legend=None, scale=color_scale),
).transform_window(
x=rank(),
groupby=[country, animal]
).properties(width=550, height=140)
提供丰富的图形代码提供丰富的图形代码提供丰富的图形代码
推荐阅读:
入门: 最完整的零基学习最全面的零基学习最完整的零基学习Python的问题 | 从零开始学习从零基础学习从零基础学习8个月的Python | 实战项目 |学Python这是捷径,这是捷径,这是捷径
干货:爬行豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析最佳球员分析 | 从万众期待到口碑惨败!唐探3令人失望 | 笑新伊田图龙记笑新伊田图龙记笑新伊田图龙记 | 谜语之王回答灯谜之王灯谜之王谜语之王 |用Python人山人海素描图人山人海素描图人山人海 Dishonor太火了,我用机器学习做了一个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python日常酷跑游戏日常酷跑游戏日常酷跑游戏!
AI: 会写诗的机器人会写诗的机器人会写诗的机器人 | 给图片上色给图片上色给图片上色 | 预测收入 | 《耻辱》太火了,我用机器学习做了一部迷你推荐系统电影
小工具: Pdf转Word易于修复表单和水印!易于处理的表单和水印!易于修复表单和水印!简单的表格和水印! | 一键把html将页面另存为网页另存为网页另存为pdf!| 再见PDF提款费!提款费!提款费!提款费用! | 用90构建最强大的代码行构建最强大的代码行构建最强大的代码行PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一个固定的低成本机票提醒!制作一张别针的低价机票提醒! |60代码行做了一个语音墙纸切换,天天见女士!
年度弹出文案年度弹出文案年度爆炸性文案
-
1). 卧槽!Pdf转Word用Python轻松搞定 !
-
2).学Python闻起来好香!我用100一行代码做了一个网站,帮助人们做了一行代码,做了一个网站,帮助了人们做了一行代码,帮助了人们PS旅行图片赚鸡腿吃旅行图片赚鸡腿
-
3).第一次播放量过亿,火爆全网,我分析了《波妹》,发现了这些秘密
-
4). 80一行行代码!使用Python让救济金做正确的事做做的人做好事的人A梦分身
-
5).你必须掌握的东西你必须掌握20个python代码,简短而紧凑,永无止境的有用代码,简短而甜蜜,永无止境的有用的代码,简短而紧凑,永无止境的使用代码,简短而甜蜜,永无止境的用途
-
6). 30个Python古怪技能集古怪小贴士收藏古怪技能集
-
7). 我总结的80《菜鸟学习专页》《菜鸟学习专页》《菜鸟学习》Python精选干货.pdf》,都是干货
-
8). 再见Python!我要学Go了!2500词深度分析词深度分析词深度分析 !
-
9).发现了一只舔狗的福利!这Python爬虫神器太酷了,不能自动下载女孩的照片
点击阅读原文点击查看点击点击阅读点击阅读原文点击查看B放我鸽子看录像!站在我的录像带上!在视频里放我鸽子!站在我的录像带上!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除