matplotlib的基本使用 附python代码详细讲解(基本图的绘制、样式、简单函数的使用)
生活随笔
收集整理的這篇文章主要介紹了
matplotlib的基本使用 附python代码详细讲解(基本图的绘制、样式、简单函数的使用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一、基本圖的繪制
- 1.1直線的繪制
- 1.2折線的繪制
- 1.3散點圖的繪制
- 1.4繪制不同顏色的散點圖
- 1.5繪制不同顏色的線
- 1.6柱狀圖
- 1.7餅狀圖
- 1.8直方圖
- 1.9三維圖
- 1.10等高線圖
- 二、樣式
- 2.1基本樣式
- 2.2畫布分區的使用
- 三、函數
- 3.1簡單的一元二次方程
- 3.2三角函數
一、基本圖的繪制
1.1直線的繪制
# coding=utf-8import matplotlib.pyplot as plt# 連接(0,3) (4,5)兩個點 plt.plot([0, 4], [3, 5])# 顯示x軸 y軸 plt.ylabel("y") plt.xlabel("X")# 保存路徑 plt.savefig("F:/Z/Python/project/project2/matl/直線.jpg") # 顯示圖 plt.show()運行效果
1.2折線的繪制
# coding=utf-8import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 創建 X Y Z坐標X = [1, 5, 7, 9, 5] Y = [9, 6, 7, 3, 6] Z = [5, 6, 9, 3, 4]# 生成畫布對象 figure = plt.figure()# 創建一個Axes3D的子圖放到figure畫布里面 ax = Axes3D(figure) ax.plot_trisurf(X, Y, Z)plt.show()運行效果
1.3散點圖的繪制
# coding=utf-8import matplotlib.pyplot as plt import numpy as np# 生成0-10之間(0開始 10結束) 100個等差數 x = np.linspace(0, 10, 100)sin_y = np.sin(x) # 進行繪制正弦曲線 # plt.plot(x,sin_y)# 繪制散點圖 plt.scatter(x, sin_y) # plt.plot(x,sin_y,"o")plt.show()""" 注意:由上可知,使用plot繪制和使用scatter繪制出來的圖形是一樣的但是,如果畫一堆點,點的形式沒有差別就建議使用plot,因為plot的繪圖速度優于scatter如果點的形式有差別(點的大小和顏色不同),就必須使用scatter """運行效果
1.4繪制不同顏色的散點圖
# coding=utf-8import matplotlib.pyplot as plt import numpy as np# 繪制10種大小,10種顏色的散點圖 # 執行多次獲取的隨機數都是一樣的 np.random.seed(0) x = np.random.rand(100) y = np.random.rand(100)# 生成10種大小 size = np.random.rand(100)*1000 # print(size) # 生成10中顏色 color = np.random.rand(100)# 繪制散點圖 size:顏色 color:顏色 alpha:透明度 plt.scatter(x, y, s=[size], c=color,alpha=0.9)plt.show()""" 注意: 大小、顏色的個數和x,y的個數應該保持一致 要不然會出現類似下面的報錯 'c' argument has 10 elements, which is inconsistent with 'x' and 'y' with size 100.s must be a scalar, or the same size as x and y"""運行效果
1.5繪制不同顏色的線
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
1.6柱狀圖
# coding=utf-8import matplotlib.pyplot as plt# 創建x:年份 y:利潤 x = [2016, 2017, 2018, 2019, 2020] x_label = ["2016年", "2017年", "2018年", "2019年", "2020年"] y = [-500000000000, 60000000000, 70000000000, 80000000000, 900000000000]# 解決柱狀圖中無法顯示負號的問題 plt.rcParams['axes.unicode_minus'] = False# 調用bar函數繪制柱狀圖 # width修改柱的寬度 plt.bar(x, y, width=0.8)# 解決中文亂碼問題 plt.rcParams['font.sans-serif'] = ['SimHei']# 修改x坐標的值 plt.xticks(x, x_label)# 顯示x軸 y軸名稱 plt.ylabel("利潤") plt.xlabel("年份")# 增加標題 plt.title("每年對應的利潤圖") plt.show()運行效果
1.7餅狀圖
# coding=utf-8import matplotlib.pyplot as plt# 山羊、狗和鴨子的數量 sheep = 666 dogs = 555 ducks = 888 # 山羊、狗和鴨子的比例 sheep_percent = sheep/(sheep+ducks+dogs) dogs_percent = dogs/(sheep+ducks+dogs) ducks_percent = ducks/(sheep+ducks+dogs)# 添加名稱 labels =["山羊","狗","鴨子"]# 可自選顏色 colors = ["blue","green","red"]# 解決中文亂碼問題 plt.rcParams['font.sans-serif'] = ['SimHei']# 繪制餅狀圖 paches,texts,autotexts=plt.pie([sheep_percent,dogs_percent,ducks_percent],labels=labels,colors=colors,explode=(0,0,0.05),autopct="%0.1f%%")# 設置餅狀圖字體顏色 for text in autotexts:text.set_color("white")# 設置字體大小 for text in texts+autotexts:text.set_fontsize(15)plt.show()運行效果
1.8直方圖
# coding=utf-8import matplotlib.pyplot as plt import numpy as np# 生成1000個正態分布隨機數 x = np.random.randn(1000)# plt.hist(x) # 修改柱的寬度 bins plt.hist(x, bins=100) plt.show()運行效果
1.9三維圖
# coding=utf-8import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 創建 X Y Z坐標X = [1, 5, 7, 9, 5] Y = [9, 6, 7, 3, 6] Z = [5, 6, 9, 3, 4]# 生成畫布對象 figure = plt.figure()# 創建一個Axes3D的子圖放到figure畫布里面 ax = Axes3D(figure) ax.plot_trisurf(X, Y, Z)plt.show()運行效果
注:鼠標點住圖,可使其旋轉
如果不能的解決辦法:
1.10等高線圖
# coding=utf-8import matplotlib.pyplot as plt import numpy as np# 創建x,y,生成100個隨機的x,y x = np.linspace(-10, 10, 100) y = np.linspace(-10, 10, 100)# 計算x,y相交的點X,Y X, Y = np.meshgrid(x, y)# 計算Z Z = np.sqrt(X ** 2 + Y ** 2) plt.contourf(X, Y, Z)plt.show()運行效果
二、樣式
2.1基本樣式
# coding=utf-8import matplotlib.pyplot as plt# 準備繪制的點 x = [0, 1, 2, 3, 4, 5, 6] y = [1, 2, 4, 8, 16, 32, 64]# 顯示x軸 y軸名稱 plt.ylabel("y軸") plt.xlabel("X軸")# 解決中文亂碼問題 plt.rcParams['font.sans-serif'] = ['SimHei']# 調用繪制方法 plt.plot(x, y)# 給圖添加標題 plt.title("標題")# 保存路徑 plt.savefig("F:/Z/Python/project/project2/matl/base_pattern.jpg")# 顯示圖 plt.show()運行效果
2.2畫布分區的使用
# coding=utf-8import matplotlib.pyplot as plt import numpy as np# 生成0-10之間(0開始 10結束) 100個等差數 x = np.linspace(0, 10, 100)# 正弦 sin_y = np.sin(x) # 對畫布進行分區 將畫布分為2行2列 劃分到1區(這里幾區呢相當于數學當中的象限) plt.subplot(2,2,1) # 修改x,y的坐標范圍 plt.xlim(-5,15) plt.ylim(-2,1.5) # 進行繪制正弦曲線 plt.plot(x,sin_y)# 對畫布進行分區 將畫布分為2行2列 劃分到2區(這里幾區呢相當于數學當中的象限) plt.subplot(2,2,2) plt.plot(x,np.cos(x))plt.show()運行效果
三、函數
3.1簡單的一元二次方程
# coding=utf-8import matplotlib.pyplot as pltx = range(-100, 100) y = [i ** 2 for i in x]# 調用繪制方法 plt.plot(x, y)# 保存 plt.savefig("onetwofangcheng.jpg")# 顯示圖 plt.show()運行結果
3.2三角函數
# coding=utf-8import matplotlib.pyplot as plt import numpy as np# 生成0-10之間(0開始 10結束) 100個等差數 x = np.linspace(0, 10, 100)# 正弦 sin_y = np.sin(x) # 進行繪制正弦曲線 plt.plot(x, sin_y)# 進行繪制余弦曲線 cos_y = np.cos(x) plt.plot(x, cos_y)# 保存 plt.savefig("sincos.jpg") plt.show()運行效果
注意:cos類似
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
總結
以上是生活随笔為你收集整理的matplotlib的基本使用 附python代码详细讲解(基本图的绘制、样式、简单函数的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware workstation 1
- 下一篇: 【文章】你和自己聊过吗?你很重要