r语言和python的区别_生物医学绘图,Python 并不比R语言差

做过基因测序,尤其是做过RNAseq的同学都知道,R语言中有一款数据可视化神器ggplot2,其绘图功能强大,但它的缺陷是不能绘制3D图形,需要加载扩展包,很麻烦。

如果用Python语言,matplotlib只需要几行代码就能画出漂亮的3D图形,要啥有啥,不信接着看:

3D散点图

代码如下:

import numpy as np

x = np.random.normal(0, 1, 100)

y = np.random.normal(0, 1, 100)

z = np.random.normal(0, 1, 100)

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

fig = plt.figure()

ax = Axes3D(fig)

ax.scatter(x, y, z)

plt.show()

5f2f676a3ac2c97ec891c927da5b593a.png

3D线型图

代码如下:

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(-6 * np.pi, 6 * np.pi, 1000)

y = np.sin(x)

z = np.cos(x)

fig = plt.figure()

ax = Axes3D(fig)

ax.plot(x, y, z)

plt.show()

05ddf19211b69964bf77cfe96af17d06.png

3D柱状图

代码如下:

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

import numpy as np

fig = plt.figure()

ax = Axes3D(fig)

x = [0, 1, 2, 3, 4, 5, 6]

for i in x:

y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

z = abs(np.random.normal(1, 10, 10))

ax.bar(y, z, i, zdir='y', color=['r', 'g', 'b', 'y'])

plt.show()

3f2639afa7c67f6e56bcb378c6b2d33a.png

3D曲面图

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()

ax = Axes3D(fig)

X = np.arange(-2, 2, 0.1)

Y = np.arange(-2, 2, 0.1)

X, Y = np.meshgrid(X, Y)

Z = np.sqrt(X ** 2 + Y ** 2)

ax.plot_surface(X, Y, Z, cmap=plt.cm.winter)

plt.show()

ab500b54202404827af6bc6036146515.png

3D混合图

from mpl_toolkits.mplot3d import Axes3D

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax = Axes3D(fig)

x1 = np.linspace(-3 * np.pi, 3 * np.pi, 500)

y1 = np.sin(x1)

ax.plot(x1, y1, zs=0, c='red')

x2 = np.random.normal(0, 1, 100)

y2 = np.random.normal(0, 1, 100)

z2 = np.random.normal(0, 1, 100)

ax.scatter(x2, y2, z2)

plt.show()

f4cea346997dd3c56d985f29f996da5a.png

3D子图

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

import numpy as np

fig = plt.figure()

ax1 = fig.add_subplot(1, 2, 1, projection='3d')

x = np.linspace(-6 * np.pi, 6 * np.pi, 1000)

y = np.sin(x)

z = np.cos(x)

ax1.plot(x, y, z)

ax2 = fig.add_subplot(1, 2, 2, projection='3d')

X = np.arange(-2, 2, 0.1)

Y = np.arange(-2, 2, 0.1)

X, Y = np.meshgrid(X, Y)

Z = np.sqrt(X ** 2 + Y ** 2)

ax2.plot_surface(X, Y, Z, cmap=plt.cm.winter)

plt.show()

24ab0bb744b1f1160a1b92c2a3d95407.png

小结

Python语言简洁而优雅,不仅绘图功能强大,还是目前最火的人工智能用到最多的语言。画图的例子还有很多,上面每个图还可进一步精雕细凿,调整颜色和饱和度,精致到艺术品水平,自己试试就知道了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值