请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3364712 新帖:0

matplotlib 数据可视化 - 等值线图、极区图

我是小编发表于:5 月 10 日 00:29回复(1)

本节的主题是个延伸,等值线图与极区图不常用,有兴趣的极客们可以参考一下( ̄┰ ̄*)

本篇介绍的两个图表不常,所以只简单介绍,各位可以简单了解!( * ̄▽ ̄)((≧︶≦*)

import numpy as np
import pandas as pd

等值线图¶

等值线图又称等高线图,在科学界很常用。

等值线图表示的是三维结构的表面,其中封装的曲线表示的是一个个处于同一层级别或z值相同的数据点。

x = np.arange(-2.0,2.0,0.01)
y = np.arange(-2.0,2.0,0.01)
'''meshgrid用于生成三维曲面的分格线座标;产生“格点”矩阵'''
X,Y = np.meshgrid(x,y)  # 确定x/y的取值范围
'''定义一个函数,用来计算x/y对应的z值'''
def f(x,y):
    return (1-y**5+x**5)*np.exp(-x**2-y**2)
'''contour()函数可生成三维结构表面的等值线图'''
C = plt.contour(X,Y,f(X,Y),8,colors='black')
'''clabel用于标记等高线'''
plt.clabel(C,inline=1,fontsize=10)
plt.show()

为等高线添加过渡色¶

x = np.arange(-2.0,2.0,0.01)
y = np.arange(-2.0,2.0,0.01)
'''meshgrid用于生成三维曲面的分格线座标;产生“格点”矩阵'''
X,Y = np.meshgrid(x,y)  # 确定x/y的取值范围
'''定义一个函数,用来计算x/y对应的z值'''
def f(x,y):
    return (1-y**5+x**5)*np.exp(-x**2-y**2)
'''contour()函数可生成三维结构表面的等值线图'''
C = plt.contour(X,Y,f(X,Y),8,colors='black')

'''cmap=plt.cm.hot为等值线添加过渡色'''
plt.contour(X,Y,f(X,Y),8,cmap=plt.cm.hot)

'''clabel用于标记等高线'''
plt.clabel(C,inline=1,fontsize=10)
plt.show()

为图表添加颜色说明¶

x = np.arange(-2.0,2.0,0.01)
y = np.arange(-2.0,2.0,0.01)
'''meshgrid用于生成三维曲面的分格线座标;产生“格点”矩阵'''
X,Y = np.meshgrid(x,y)  # 确定x/y的取值范围
'''定义一个函数,用来计算x/y对应的z值'''
def f(x,y):
    return (1-y**5+x**5)*np.exp(-x**2-y**2)
'''contour()函数可生成三维结构表面的等值线图'''
C = plt.contour(X,Y,f(X,Y),8,colors='black')
'''cmap=plt.cm.hot为等值线添加过渡色'''
plt.contour(X,Y,f(X,Y),8,cmap=plt.cm.hot)
'''clabel用于标记等高线'''
plt.clabel(C,inline=1,fontsize=10)

'''colorbar()可在右侧显示颜色值'''
plt.colorbar()

plt.show()

极区图¶

极区图呈放射延伸状,每块会占一定的角度。

半径大小表示它代表的某一类数据的大小。

角度大小表示它所占总类别的比例。

N = 8
'''生成角度值'''
theta = np.arange(0.,2*np.pi,2*np.pi/N)
'''生成半径值'''
radii = np.array([4,7,5,3,1,5,6,7])
'''定义轴类型'''
plt.axes([0.025,0.025,0.95,0.95],polar=True)
'''定义颜色集,这里使用RGB值,当然也可以使用颜色名称'''
colors = np.array(['#4bb2c5','#c5b47f','#EAA228','#579575','#839557','#958c12','#953579','#4b5de4'])
'''bar()函数要求传入角度和半径作为参数'''
bars = plt.bar(theta,radii,width=(2*np.pi/N),bottom=0.0,color=colors)
plt.show()
 

全部回复

0/140

达人推荐

量化课程

    移动端课程