Advertisement

生物信息学python还是r语言_生物医学绘图,Python 并不比R语言差

阅读量:

做过基因测序和生物信息学分析的同学也都能了解,在R语言中有一个强大的数据可视化工具ggplot2。它虽然功能出色但也存在一定的局限性:无法直接生成三维图形需要额外加载包导致操作较为繁琐

使用Python编程语言时, matplotlib 仅需几行代码即可轻松实现绘制漂亮的三维图形.没有什么困难的问题还存在吗?往下看看吧

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()

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()

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()

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()

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()

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()

小结

Python语言轻巧且优美,并非仅局限于绘图功能这一项强项——它同时也是当前人工智能领域应用最为广泛的语言之一。在这些图表中每一个都可以经过细致地优化——无论是通过调整色调还是明暗度来优化视觉效果

全部评论 (0)

还没有任何评论哟~