在R、Python和Julia中常用的数据可视化技术( 三 )


注意 , 我们甚至可以使用其他简短的名称 , 但通常使用plt表示matplotlib包 。第二行绘制了4个点 , 最后一行总结了整个过程 。完整图形如图4.10所示 。
在下一个例子中 , 我们为x和y添加了标签 , 以及一个标题 。所使用的函数是余弦函数 , 其中输入值范围为

在R、Python和Julia中常用的数据可视化技术

文章插图
 

在R、Python和Julia中常用的数据可视化技术

文章插图
 

import scipy as spimport matplotlib.pyplot as pltx=sp.linspace(-2*sp.pi,2*sp.pi,200,endpoint=True)y=sp.cos(x)plt.plot(x,y)plt.xlabel("x-value")plt.ylabel("Cosine function")plt.title("Cosine curve from -2pi to 2pi")plt.show()
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.10 matplotlib包生成的图形示例
漂亮的余弦曲线如图4.11所示 。
如果我们今天收到100美元 , 它将比两年后收到的更有价值 , 这个概念叫作货币时间价值 , 因为我们现在可以将100美元存入银行来赚取利息 。下面的Python程序使用size来说明此概念 。
import matplotlib.pyplot as pltfig = plt.figure(facecolor='white')dd = plt.axes(frameon=False)dd.set_frame_on(False)dd.get_xaxis().tick_bottom()dd.axes.get_yaxis().set_visible(False)x=range(0,11,2)x1=range(len(x),0,-1)y = [0]*len(x);plt.annotate("$100 receivedtoday",xy=(0,0),xytext=(2,0.15),arrowprops=dict(facecolor='black',shrink=2))plt.annotate("$100 received in 2years",xy=(2,0),xytext=(3.5,0.10),arrowprops=dict(facecolor='black',shrink=2))s = [50*2.5**n for n in x1];plt.title("Time value of money ")plt.xlabel("Time (number of years)")plt.scatter(x,y,s=s);plt.show()
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.11 为图形添加x和y轴标签及标题
相关的图形如图4.12所示 。同样 , 不同尺寸表示它们现值的相对大小 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.12 货币时间价值概念解释
4.4 Julia数据可视化对于下面的Julia程序 , 我们使用了一个名为Plots的包 , 用于安装此包的命令为Pkg.add("Plots") 。这里 , 我们通过一个Jupyter notebook运行Julia程序 。图4.13展示了一个Julia程序 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.13 Julia程序
单击菜单栏上的Kernel项目 , 然后单击Restart and Run All , 我们得到图4.14所示的结果 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.14 运行结果图
同样地 , srand(123)命令保证使用相同随机种子的任何用户都会得到相同的随机数集合 。为此 , 用户会得到与前面相同的图形 。下一个例子是使用Julia包PyPlot绘制的散点图 。
using PyPlotn=50srand(333)x = 100*rand(n)y = 100*rand(n)areas = 800*rand(n)fig = figure("pyplot_scatterplot",figsize=(10,10))ax = axes()scatter(x,y,s=areas,alpha=0.5)title("using PyPlot: Scatter Plot")xlabel("X")ylabel("Y")grid("on")相关图形如图4.15所示 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.15 Julia包PyPlot绘制散点图示例
下一个Julia程序借鉴自Sargent和Stachurski的程序 。
using QuantEcon: meshgridusing PyPlot:surfusing Plotsn = 50x = linspace(-3, 3, n)y = xz = Array{Float64}(n, n)f(x, y) = cos(x^2 + y^2) / (1 + x^2 + y^2)for i in 1:nfor j in 1:nz[j, i] = f(x[i], y[j])endendxgrid, ygrid = meshgrid(x, y)surf(xgrid, ygrid, z',alpha=0.7)令人印象深刻的图形如图4.16所示 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.16 Sargent和Stachurski程序结果图
本文截选自:《Anaconda数据科学实战》

【在R、Python和Julia中常用的数据可视化技术】


推荐阅读