其他
数据呈现 丨用python绘制极坐标图形
一切平面图形中,圆是最美的。
”极坐标散点图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#生成范例数据
r = 2 * np.random.rand(100) #生成100个服从“0~1”均匀分布的随机样本值
theta = 2 * np.pi * np.random.rand(100) #生成角度
area = 100 * r**2 #面积
colors = theta #颜色
ax = plt.subplot(111, projection='polar')
#projection为画图样式,除'polar'外还有'aitoff', 'hammer', 'lambert'等
c = ax.scatter(theta, r, c=colors, s=area, cmap='cool', alpha=0.75)
#ax.scatter为绘制散点图函数
plt.show()
注:上图为随机数据生成的图,每次运行得到的图形会有所不同。matplot的色彩映射请参考官方文档:
https://www.matplotlib.org.cn/tutorials/colors/colormaps.html
plt.scatter
相关参数详解:极坐标柱状图
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
# 从0到2pi生成均匀间隔的20个数,endpoint为Flase表示不包含末尾数字2pi,默认为True,这里指的是角度
R = 10 * np.random.rand(N) # 随机生成20个半径
width = np.pi / 8 * np.random.rand(N) # 线的宽度
ax = plt.subplot(111, projection = 'polar') # 极坐标图'polar'
bars = ax.bar(theta,R, width = width, bottom = 0.0) # 绘制柱子
# 利用循环设置每个柱子的颜色、透明度
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.viridis(r / 10.)) # 设置颜色
bar.set_alpha(0.5) # 设置透明度
plt.show()
plt.bar
参数详解:极坐标雷达图
#生成数据,注意第一组与最后一组数据是相同的,确保可以连成一个闭合多边形
country = ["CHINA", "USA", "JAPAN", "KOREA", "ENGLAND"]
index1= [4.5, 4.9, 3.9, 2.8, 2.6, 4.5]
index2= [4.9, 4.7, 4.5, 3.9, 3.8, 4.9]
plt.figure(figsize = (10, 6)) #设置图形大小
plt.subplot(polar = True) #设置图形为极坐标图
theta = np.linspace(0, 2 * np.pi, len(index1)) #根据index1的数量将圆均分
#设置网格,标签
lines, labels = plt.thetagrids(range(0, 360, int(360/len(country))), (country))
#绘制index1
plt.plot(theta,index1 )
plt.fill(theta,index1 , 'g', alpha=0.1) #设置颜色与透明度
#绘制index2
plt.plot(theta, index2)
# 添加图例和标题
plt.legend(labels=('index1', 'index2'), loc = 'best',frameon = True) # loc为图例位置
plt.title("index1 vs index2");
index1
与index2
的大小关系,还可以看到不同国度同一个指标的大小情况。►往期推荐
回复【Python】👉简单有用易上手
回复【学术前沿】👉机器学习丨大数据
回复【数据资源】👉公开数据
回复【可视化】👉你心心念念的数据呈现
回复【老姚专栏】👉老姚趣谈值得一看
►一周热文
特别推荐 | “正则表达式”在工业企业数据库匹配中的运用(二)
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
审阅:杨奇明编辑:青酱
欢迎扫描👇二维码添加关注