c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!
前言
散點(diǎn)圖是Matplotlib常用圖形之一,與線形圖類似。但是這種圖形不再由線段連接,而是由獨(dú)立的點(diǎn)、圓圈或其他形狀構(gòu)成。那么怎么畫散點(diǎn)圖呢?Matplotlib給出了兩種不同的方法,去畫散點(diǎn)圖。如何在不同的情況下,合理的使用這兩種方法?
用plt.plot畫散點(diǎn)圖
import numpy as npimport matplotlib.pyplot as pltx= np.linspace(0, 10, 30)y= np.sin(x)plt.plot(x, y, 'o', color='black');plt.plot()函數(shù)的第三個(gè)參數(shù)是一個(gè)字符,表示圖形符號的類型。與你之前用 '-' 和 '--' 設(shè)置線條屬性類似,對應(yīng)的圖形標(biāo)記也有縮寫形式。
1.部分圖形標(biāo)記展示
rng= np.random.RandomState(0)formarkerin['o', '.', ',', 'x', '+', 'v', '^', '', 's', 'd']: plt.plot(rng.rand(5), rng.rand(5), marker, label="marker='{0}'".format(marker))plt.legend(numpoints=1)plt.xlim(0, 1.8);2.連接每一個(gè)點(diǎn)
plt.plot(x, y, '-ok')# 直線(-)、圓圈(o)、黑色(k)用圖形標(biāo)記的縮寫形式,跟線段組合成一給新的字符,傳給plt.plot()函數(shù)
3.自定義線條和散點(diǎn)屬性
plt.plot(x, y, '-p', color='gray', markersize=15, linewidth=4, markerfacecolor='white', markeredgecolor='gray', markeredgewidth=2)plt.ylim(-1.2, 1.2)plt.plot函數(shù)非常靈活,可以滿足各種不同的可視化配置需求。
用plt.scatter畫散點(diǎn)圖
這是另一個(gè)創(chuàng)建散點(diǎn)圖的函數(shù)是plt.scatter。它的功能非常強(qiáng)大,其用法與plt.plot函數(shù)類似。
plt.scatter(x, y, marker='o')plot與scatter的區(qū)別
plt.scatter與plt.plot的主要差別在于,前者在創(chuàng)建散點(diǎn)圖時(shí)具有更高的靈活性,可以 單獨(dú)控制每個(gè)散點(diǎn)與數(shù)據(jù)匹配,也可以讓每個(gè)散點(diǎn)具有不同的屬性(大小、表面顏色、邊 框顏色等)。
1.隨機(jī)散點(diǎn)圖
創(chuàng)建一個(gè)隨機(jī)散點(diǎn)圖,里面有各種顏色和大小的散點(diǎn)。為了能更好地顯示重疊部分,用alpha參數(shù)來調(diào)整透明度。
rng= np.random.RandomState(0)x= rng.randn(100)y= rng.randn(100)colors= rng.rand(100)sizes= 1000*rng.rand(100)plt.scatter(x, y, c=colors, s=sizes, alpha=0.3, cmap='viridis')plt.colorbar(); # 顯示顏色條注意點(diǎn),顏色自動(dòng)映射成顏色條(color scale,通過colorbar()顯示),散點(diǎn)的大小以像素為單位。這樣,散點(diǎn)的顏色與大小就可以在可視化圖中顯示多維數(shù)據(jù)的信息了。
plot與scatter:效率對比
plt.plot 與 plt.scatter 除了特征上的差異之外,還有什么影響我們選擇的因素呢?在數(shù) 據(jù)量較小的時(shí)候,兩者在效率上的差異不大。但是當(dāng)數(shù)據(jù)變大到幾千個(gè)散點(diǎn)時(shí),plt.plot 的效率將大大高于 plt.scatter。這是由于 plt.scatter 會(huì)對每個(gè)散點(diǎn)進(jìn)行單獨(dú)的大小與顏 色的渲染,因此渲染器會(huì)消耗更多的資源。而在 plt.plot 中,散點(diǎn)基本都彼此復(fù)制,因此整個(gè)數(shù)據(jù)集中所有點(diǎn)的顏色、尺寸只需要配置一次。由于這兩種方法在處理大型數(shù)據(jù)集時(shí)有很大的性能差異,因此面對大型數(shù)據(jù)集時(shí),plt.plot 方法比 plt.scatter 方法好。
總結(jié)
以上是生活随笔為你收集整理的c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue 里 几个重要的指令
- 下一篇: 您必须有下列压缩分卷才能继续解压