使用matplotlib绘制3D图表
歡迎關注”生信修煉手冊”!
除了繪制經典的二維圖表外,matplotlib還支持繪制三維圖表,通過mplot3d工具可以實現,只需要在axes對象中指定projection參數為3d即可,常見的折線圖,散點圖,柱狀圖,等高線圖等都可以進行三維圖表的繪制,只需要同時提供x,y,z三個坐標軸對應的值即可,下面來看下具體用法
1.?折線圖
示例如下
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> fig = plt.figure() >>> ax = plt.axes(projection='3d') >>> theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) >>> z = np.linspace(-2, 2, 100) >>> r = z ** 2 + 1 >>> x = r * np.sin(theta) >>> y = r * np.cos(theta) >>> ax.plot(x, y, z) [<mpl_toolkits.mplot3d.art3d.Line3D object at 0x095412C8>] >>> plt.show()輸出結果如下
2.?散點圖
示例如下
>>> fig = plt.figure() >>> ax = plt.axes(projection='3d') >>> for?mark,start, end in?(['o', 10, 20], ['^', 5, 30]): ... ????xs = np.random.choice(np.arange(23, 32), 50) ... ????ys = np.random.choice(np.arange(0, 100), 50) ... ????zs = np.random.choice(np.arange(start, end), 50) ... ????ax.scatter(xs, ys, zs, marker=mark) ... >>> plt.show()?輸出結果如下
3.?柱狀圖
示例如下
>>> fig = plt.figure() >>> ax = plt.axes(projection='3d') >>> yticks = [3, 2, 1] >>> for?i in?yticks: ... x = np.arange(10) ... y = np.random.rand(10) ... ax.bar(x, y, zs=i, zdir='y') ... <BarContainer object of 10 artists> <BarContainer object of 10 artists> <BarContainer object of 10 artists> >>> plt.show()輸出結果如下
4.?熱圖
示例如下
>>> fig = plt.figure() >>> ax = plt.axes(projection='3d') >>> X = np.arange(-5, 5, 0.25) >>> Y = np.arange(-5, 5, 0.25) >>> X, Y = np.meshgrid(X, Y) >>> R = np.sqrt(X ** 2 + Y ** 2) >>> Z = np.sin(R) >>> ax.plot_surface(X, Y, Z, cmap = 'RdBu') <mpl_toolkits.mplot3d.art3d.Poly3DCollection object at 0x00A66D48> >>> plt.show()輸出結果如下
除了以上基本類型外,matplotlib還支持更多的3D圖表類型,具體用法請查看官方文檔。
·end·
—如果喜歡,快分享給你的朋友們吧—
原創不易,歡迎收藏,點贊,轉發!生信知識浩瀚如海,在生信學習的道路上,讓我們一起并肩作戰!
本公眾號深耕耘生信領域多年,具有豐富的數據分析經驗,致力于提供真正有價值的數據分析服務,擅長個性化分析,歡迎有需要的老師和同學前來咨詢。
? 更多精彩
KEGG數據庫,除了pathway你還知道哪些
全網最完整的circos中文教程
DNA甲基化數據分析專題
突變檢測數據分析專題
mRNA數據分析專題
lncRNA數據分析專題
circRNA數據分析專題
miRNA數據分析專題
單細胞轉錄組數據分析專題
chip_seq數據分析專題
Hi-C數據分析專題
HLA數據分析專題
TCGA腫瘤數據分析專題
基因組組裝數據分析專題
CNV數據分析專題
GWAS數據分析專題
2018年推文合集
2019年推文合集
? 寫在最后
轉發本文至朋友圈,后臺私信截圖即可加入生信交流群,和小伙伴一起學習交流。
掃描下方二維碼,關注我們,解鎖更多精彩內容!
一個只分享干貨的
生信公眾號
總結
以上是生活随笔為你收集整理的使用matplotlib绘制3D图表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试题 nginx优化
- 下一篇: Java集合面试总结