網站首頁 編程語言 正文
少廢話,直接上代碼?
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-10-14 CompletableFuture解決多線程返回結果問題
- 2021-12-02 Android?Gson基本用法學習_Android
- 2022-07-19 Python數據分析之?Pandas?Dataframe合并和去重操作_python
- 2022-02-24 Matlab中plot函數及legend函數詳解
- 2023-08-15 antdv Input組件maxLength屬性設置默認值
- 2022-04-11 蝴蝶優化算法及實現源碼_相關技巧
- 2022-03-29 jQuery實現小球點擊發射動畫_jquery
- 2022-09-25 創建的對象如何在堆區分配內存
- 最近更新
-
- 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同步修改后的遠程分支