python绘制三维地形shade()参数_Python数据可视化笔记
04--雷达图、三维图实战
Python数据可视化笔记01--Matplotlib基础
Python数据可视化笔记02--折线图、散点图实战
Python数据可视化笔记03--柱状图、饼状图实战
本⽂索引:
雷达图
三维图
本⽂环境:Windows10 + jupyter notebook
⼀、雷达图
【雷达图】
雷达图(Radar Chart),⼜可称为戴布拉图、蜘蛛⽹图(Spider Chart),可以很好刻画出某些指标的横向或纵向的对⽐关系。
雷达图经常⽤于对多项指标的全⾯分析。⽐如:HR想要对⽐两个应聘者的综合素质,⽤雷达图分别画出来,就可以进⾏直观的⽐较。python中⽤matplotlib模块绘制雷达图需要⽤到极坐标系。
【雷达图之极坐标系】
在平⾯内取⼀个定点O,叫极点,引⼀条射线Ox,叫做极轴,再选⼀个长度单位和⾓度的正⽅向(通常取逆时针⽅向)。对于平⾯内任何⼀点M,⽤ρ表⽰线段OM的长度(有时也⽤r表⽰),
表⽰从Ox到OM的⾓度,ρ叫做点M的极径,
叫做点M的极⾓,有序数对(ρ,
)就叫做点M的极坐标,这样建⽴的坐标系叫做极坐标系。
通常情况下,M的极径坐标单位为1(长度单位),极⾓坐标单位为°。
【雷达图之polar()函数】
polar(theta,r,**kwargs)
主要参数:
theta:指极⾓
r:指极径。
import numpy as np
import matplotlib.pyplot as plt
plt.polar(0.25*np.pi,20,'ro',lw=2)
plt.ylim(0,50) # 设置极轴的上下限
plt.show()
这⾥:
0.25*np.pi = 45°:极⾓
20:极径
‘ro’:绘极坐标形状为红⾊圆点
lw = 2:极坐标图形宽度为2
如果绘制多个极⾓和极轴时:
import numpy as np
import matplotlib.pyplot as plt
theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2])
r = [75,60,50,70,50,85,45,70]
plt.polar(theta*np.pi,r,'ro',lw = 2)
plt.ylim(0,100)
plt.show()
theta:定义了⼀个ndarray数组存储多个数据
r:定义了⼀个数组存放极轴的长度,也叫极径
则在途中绘制出多个点(0.25*π,75),(0.5*π,60),(0.75*π,50),(1.0*π,70)等。绘制完极坐标点后,把每个点⽤线连起来,就是雷达图了。
只需要把图形绘制样式修改为‘ro-’即可,'ro-'中'-'表⽰极坐标点之间的连线。
此时得到图形是这样的:
但是此时曲线并未闭合?
闭合曲线:多构造⼀个极坐标点,和第⼀个点重叠
import numpy as np
import matplotlib.pyplot as plt
theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2,0.25])
r = [75,60,50,70,50,85,45,70,75]
plt.polar(theta*np.pi,r,'ro-',lw = 2)
plt.ylim(0,100)
plt.show()
运⾏结果:
fill()函数填充雷达图
import numpy as np
import matplotlib.pyplot as plt
theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2,0.25])
r = [75,60,50,70,50,85,45,70,75]
plt.polar(theta*np.pi,r,'ro-',lw = 2)
plt.fill(theta*np.pi,r,facecolor='r',alpha=0.25) # 填充
plt.ylim(0,100)
plt.show()
运⾏结果:
⼆、三维图
【三维图概述】
matplotlib⽀持⼀些基础的三维图表绘制,⽐如曲⾯图、散点图和柱状图,需要使⽤mpl_toolkits模块。如果要绘制三维图形,⾸先需要使⽤以下的语句导⼊相应的对象:
from mpl_toolkits.mplot3d import Axes3D
然后使⽤下⾯的两种⽅式之⼀声明要创建三维图:
ax = a(projection = '3d')
ax = plt.subplot(111,projection = '3d')
接下来就可以使⽤ax的plot()⽅法绘制三维曲线、plot_surface()⽅法绘制三维曲⾯、scatter()⽅法绘制三维散点图或bar3d()⽅法绘制三维柱状图了。
【 三维曲⾯绘制⽅法:p3d.Axes3D.plot_surface() 】
在绘制三维图形时,⾄少需要指定x、y三个坐标轴的数据,然后再根据不同的图形指定额外的参数设置图形的属性。
plot_surface(X,Y,Z,*args,**kwargs)
常⽤参数:
rstride和cstride分别控制x和y两个⽅向的步长,这决定了曲⾯上每个⾯⽚的⼤⼩;
color⽤来指定⾯⽚的颜⾊;
cmap⽤来指定⾯⽚的颜⾊映射表。
【三维散点图绘制⽅法:p3d.Axes3D.scatter() 】
p3d.Axes3D.scatter(xs,ys,zs = 0,zdir = 'z',s = 20,c = None,depthshade = True,
*args,**kwargs)
常⽤参数:
xs、ys、zs分别⽤来指定散点符号的x、y、z坐标,如果同时为标量则指定⼀个三点符号的坐标,如果同时为等长数组则指定⼀系列散点符号的坐标。
s⽤来指定散点符号的⼤⼩,可以是标量或与xs等长的数组;
【三维柱状图绘制⽅法:p3d.Axes3D.bar3d()】
p3d.Axes3D.bar3d(x,y,z,dx,dy,dz,color = None,zsort = 'average',*args,**kwargs)
常⽤参数:
x、y、z分别⽤来指定每个柱底⾯的坐标,如果这三个参数都是标量则指定⼀个柱的地⾯坐标,如果是三个等长的数组则指定多个柱的底⾯坐标;
dx、dy、dz分别⽤来是定柱在三个坐标轴上的跨度,即x⽅向的宽度,y⽅向的厚度和z⽅向的⾼度;
color⽤来指定柱的表⾯颜⾊。
三维曲线图实战:根据测试数据x、y、z,然后绘制三维曲线,并设置图例字号
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
s parameterax = a(projection = '3d')
#测试数据
theta = np.linspace(-4*np.pi,4*np.pi,100)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。