網站首頁 編程語言 正文
少廢話,直接上代碼?
import matplotlib.pyplot as plt import numpy as np # 1. 首先是導入包,創建數據 n = 10 x = np.random.rand(n) * 2# 隨機產生10個0~2之間的x坐標 y = np.random.rand(n) * 2# 隨機產生10個0~2之間的y坐標 # 2.創建一張figure fig = plt.figure(1) # 3. 設置顏色 color 值【可選參數,即可填可不填】,方式有幾種 # colors = np.random.rand(n) # 隨機產生10個0~1之間的顏色值,或者 colors = ['r', 'g', 'y', 'b', 'r', 'c', 'g', 'b', 'k', 'm'] # 可設置隨機數取 # 4. 設置點的面積大小 area 值 【可選參數】 area = 20*np.arange(1, n+1) # 5. 設置點的邊界線寬度 【可選參數】 widths = np.arange(n)# 0-9的數字 # 6. 正式繪制散點圖:scatter plt.scatter(x, y, s=area, c=colors, linewidths=widths, alpha=0.5, marker='o') # 7. 設置軸標簽:xlabel、ylabel #設置X軸標簽 plt.xlabel('X坐標') #設置Y軸標簽 plt.ylabel('Y坐標') # 8. 設置圖標題:title plt.title('test繪圖函數') # 9. 設置軸的上下限顯示值:xlim、ylim # 設置橫軸的上下限值 plt.xlim(-0.5, 2.5) # 設置縱軸的上下限值 plt.ylim(-0.5, 2.5) # 10. 設置軸的刻度值:xticks、yticks # 設置橫軸精準刻度 plt.xticks(np.arange(np.min(x)-0.2, np.max(x)+0.2, step=0.3)) # 設置縱軸精準刻度 plt.yticks(np.arange(np.min(y)-0.2, np.max(y)+0.2, step=0.3)) # 也可按照xlim和ylim來設置 # 設置橫軸精準刻度 plt.xticks(np.arange(-0.5, 2.5, step=0.5)) # 設置縱軸精準刻度 plt.yticks(np.arange(-0.5, 2.5, step=0.5)) # 11. 在圖中某些點上(位置)顯示標簽:annotate # plt.annotate("(" + str(round(x[2], 2)) + ", " + str(round(y[2], 2)) + ")", xy=(x[2], y[2]), fontsize=10, xycoords='data')# 或者 plt.annotate("({0},{1})".format(round(x[2],2), round(y[2],2)), xy=(x[2], y[2]), fontsize=10, xycoords='data') # xycoords='data' 以data值為基準 # 設置字體大小為 10 # 12. 在圖中某些位置顯示文本:text plt.text(round(x[6],2), round(y[6],2), "good point", fontdict={'size': 10, 'color': 'red'}) # fontdict設置文本字體 # Add text to the axes. # 13. 設置顯示中文 plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 # 14. 設置legend,【注意,'繪圖測試':一定要是可迭代格式,例如元組或者列表,要不然只會顯示第一個字符,也就是legend會顯示不全】 plt.legend(['繪圖測試'], loc=2, fontsize=10) # plt.legend(['繪圖測試'], loc='upper left', markerscale = 0.5, fontsize = 10) #這個也可 # markerscale:The relative size of legend markers compared with the originally drawn ones. # 15. 保存圖片 savefig plt.savefig('test_xx.png', dpi=200, bbox_inches='tight', transparent=False) # dpi: The resolution in dots per inch,設置分辨率,用于改變清晰度 # If *True*, the axes patches will all be transparent # 16. 顯示圖片 show plt.show()
scatter主要參數:
def scatter(self, x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, **kwargs): """ A scatter plot of *y* vs *x* with varying marker size and/or color. Parameters ---------- x, y : array_like, shape (n, ) The data positions. s : scalar or array_like, shape (n, ), optional The marker size in points**2. Default is ``rcParams['lines.markersize'] ** 2``. c : color, sequence, or sequence of color, optional, default: 'b' The marker color. Possible values: - A single color format string. - A sequence of color specifications of length n. - A sequence of n numbers to be mapped to colors using *cmap* and *norm*. - A 2-D array in which the rows are RGB or RGBA. Note that *c* should not be a single numeric RGB or RGBA sequence because that is indistinguishable from an array of values to be colormapped. If you want to specify the same RGB or RGBA value for all points, use a 2-D array with a single row. marker : `~matplotlib.markers.MarkerStyle`, optional, default: 'o' The marker style. *marker* can be either an instance of the class or the text shorthand for a particular marker. See `~matplotlib.markers` for more information marker styles. cmap : `~matplotlib.colors.Colormap`, optional, default: None A `.Colormap` instance or registered colormap name. *cmap* is only used if *c* is an array of floats. If ``None``, defaults to rc ``image.cmap``. alpha : scalar, optional, default: None The alpha blending value, between 0 (transparent) and 1 (opaque). linewidths : scalar or array_like, optional, default: None The linewidth of the marker edges. Note: The default *edgecolors* is 'face'. You may want to change this as well. If *None*, defaults to rcParams ``lines.linewidth``.
設置legend,【注意,'繪圖測試’:一定要是可迭代格式,例如元組或者列表,要不然只會顯示第一個字符,也就是legend會顯示不全】
plt.legend(['繪圖測試'], loc=2, fontsize = 10) # plt.legend(['繪圖測試'], loc='upper left', markerscale = 0.5, fontsize = 10) #這個也可 # markerscale:The relative size of legend markers compared with the originally drawn ones.
其參數loc對應為:
運行結果:
補充
除了二維的散點圖,Python還能繪制三維的散點圖,下面的示例代碼
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np # 隨機種子 np.random.seed(1) def randrange(n, vmin, vmax): ''' 使數據分布均勻(vmin, vmax). ''' return (vmax - vmin)*np.random.rand(n) + vmin fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 可進行多圖繪制 n = 500 # 對于每一組樣式和范圍設置,在由x在[23,32]、y在[0,100]、 # z在[zlow,zhigh]中定義的框中繪制n個隨機點 for m, zlow, zhigh in [('o', -50, -25), ('^', -30, -5)]: xs = randrange(n, 23, 32) ys = randrange(n, 0, 100) zs = randrange(n, zlow, zhigh) ax.scatter(xs, ys, zs, marker=m) # 繪圖 # X、Y、Z的標簽 ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()
輸出結果:
原文鏈接:https://blog.csdn.net/Vertira/article/details/123524573
相關推薦
- 2022-06-16 詳解Flutter中網絡框架dio的二次封裝_Android
- 2022-05-15 Python數據結構與算法中的棧詳解_python
- 2022-07-22 String類的matches()方法的使用
- 2022-03-20 C語言數學公式來實現土味表白_C 語言
- 2024-02-26 Example動態(多條件)查詢
- 2024-01-15 idea 折疊代碼塊技巧 關于<editor-fold>
- 2022-08-24 python多線程死鎖現象及解決方法_python
- 2022-10-30 系統應用根據Uri授予權限方法詳解_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支