1.安装
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple #在终端输入
2. 基本配置
from matplotlib import pyplot as plt
# 让图片可以显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
# 让图片可以显示负号
plt.rcParams['axes.unicode_minus'] = False
3.用plot()绘图
import numpy as np
from matplotlib import pyplot as plt #导入库
ypoints = np.array([3, 8,5]) #返回一个数组
xpoints = np.array([0, 4,6])
plt.plot(xpoints,ypoints) #参数 1 是包含 x 轴上的点的数组。参数 2 是包含 y 轴上的点的数组。
plt.show() #显示绘图
⭐若plot()中只传入一个数组参数,会默认x点为0,1,2,3等,具体取决于y点的长度。
4.标记
from matplotlib import pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 7, 0])
plt.plot(ypoints, marker='o') #用keyword 参数来使用指定的标记强调每个点:marker
plt.show()
⭐可以选择其他符号标记,例如:‘*’
import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, 'o:r') #marker|line|color (标记|连接线路|颜色)--fmt语法
plt.show()
⭐线路参考
Line Syntax | Description | |
---|---|---|
'-' | Solid line | |
':' | Dotted line | |
'--' | Dashed line | |
'-.' | Dashed/dotted line |
⭐颜色参考
Color Syntax | Description | |
---|---|---|
'r' | Red | |
'g' | Green | |
'b' | Blue | |
'c' | Cyan | |
'm' | Magenta | |
'y' | Yellow | |
'k' | Black | |
'w' | White |
4.1设置标记大小(ms=number)
import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, marker = 'o', ms = 20) #markersize:ms 设置标记大小
plt.show()
4.2设置标记颜色(外颜色:mec='color')(内颜色:mfc='color')
import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, marker = 'o', ms = 20, mec = 'r')
plt.show()
⭐也可以用十六进制设置标记颜色,例:mfc = '#4CAF50'
5.线
5.1设置线条样式--linestyle
import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, linestyle = 'dotted')
plt.show()
linestyle可以写成:ls
dotted可以写成::
dashed可以写成:--
您可以选择以下任一样式:
Style | Or | |
---|---|---|
'solid' (default) | '-' | |
'dotted' | ':' | |
'dashed' | '--' | |
'dashdot' | '-.' | |
'None' | '' or ' ' |
⭐线条也可以设置颜色,只需要在plot()中添加参数c='颜色'
⭐线条也可以改变宽度,只需要在plot()中添加参数linewdith='浮点数'
⭐添加更多plot()函数即可绘制多条线
6.标签
6.1为坐标轴设置标签--xlabel(),ylabel()
import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.xlabel("Average Pulse") #为x轴添加标签
plt.ylabel("Calorie Burnage") #为y轴添加标签
plt.show()
6.2设置整个标题--title()
import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.title("Sports Watch Data") #添加标题
plt.xlabel("Average Pulse")
plt.ylabel("Calorie Burnage")
plt.show()
⭐可以在title()中添加参数loc='位置',设置标题位置。合法值为:“left”、“right”和“center”。默认值为 'center'。
6.3设置标题和标签的字体属性--fontdict
import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
font1 = {'family':'serif','color':'blue','size':20}
font2 = {'family':'serif','color':'darkred','size':15}
plt.title("Sports Watch Data", fontdict = font1) #传入的是一个键值对字典
plt.xlabel("Average Pulse", fontdict = font2)
plt.ylabel("Calorie Burnage", fontdict = font2)
plt.plot(x, y)
plt.show()
7.网格
7.1添加网格线--grid()
import numpy as np
import matplotlib.pyplot as plt
plt.grid()
plt.show()
⭐像grid()中添加参数axis='值'可以指定需要显示的网格线,合法值为:'x'、'y' 和 'both'。默认值为 'both'。
⭐可以设置网格的 line 属性,比如这样: grid(color = 'color', linestyle = 'linestyle', linewidth = number)。
8.子图
8.1绘制子图--subplot()
import matplotlib.pyplot as plt
import numpy as np
#图1:
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(y)
#图2:
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(y)
plt.show()
方法中有两个参数,第一个和第二个代表布局有几行几列,第三个代表图的位置索引
8.2添加标题--title()
import matplotlib.pyplot as plt
import numpy as np
#图1:
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.title("abc")
plt.plot(y)
#图2:
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.title("def")
plt.plot(y)
plt.show()
8.3为整个视图添加标题--suptitle()
import matplotlib.pyplot as plt
import numpy as np
#图1:
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.title("abc")
plt.plot(y)
#图2:
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.title("def")
plt.plot(y)
plt.suptitle('eng')
plt.show()
9.分散符号
9.1创建散点图--scatter(x,y)
import matplotlib.pyplot as plt
import numpy as np
y = np.array([3, 8, 1, 10,11,5,7,6,20])
x = np.array([2,5,6,7,4,6,17,21,2])
plt.scatter(x,y)
plt.show()
scatter()中必须有两个相同长度的数组
9.2比较绘图
import matplotlib.pyplot as plt
import numpy as np
y = np.array([3, 8, 1, 10,11,5,7,6,20])
x = np.array([2,5,6,7,4,6,17,21,2])
plt.scatter(x,y)
y = np.array([1, 3, 5, 7,8,4,5,2,14])
x = np.array([1,1,9,5,3,10,16,43,3])
plt.scatter(x,y)
plt.show()
⭐可以在scatter中传入参数color=‘颜色’,设置散点颜色
⭐也可以传入与散点长度相同的颜色数组,为每个点设置不同颜色
⭐Matplotlib 模块有许多可用的颜色图。颜色图就像一个颜色列表,其中每种颜色都有一个范围为 从 0 到 100。如何创建如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12,17,65])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77,75,98])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80,90,100]) #必须创建一个具有值(从 0 到 100)的数组,散点图中的每个点都有一个值:
plt.scatter(x, y, c=colors, cmap='viridis') #cmap='颜色图',本列中用的是viridis颜色图,它的范围从 0 开始,即0是紫色,最多100是黄色。
plt.colorbar() #在绘图中包含颜色图
plt.show()
⭐ 大家可以去搜ColorMap内置颜色图去使用
⭐可以在scatter()中传入参数s=sizes,去改变每个点的大小,sizes参数必须与x轴和y轴有同样的数组长度。
⭐可以在scatter()中传入参数alpha=值,来调整点的透明度,值的范围是[0,1]。
10.柱形图
10.1创建--bar(x,y)
import matplotlib.pyplot as plt
import numpy as np
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.bar(x,y)
plt.show()
10.2水平创建--barh()
import matplotlib.pyplot as plt
import numpy as np
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 9])
plt.barh(x, y)
plt.show()
⭐可以在创建函数里添加参数color='颜色',设置条形颜色
⭐可以在创建函数里添加参数width=宽度,设置条形宽度,只能用于bar(),对于水平条,barh()请用height=高度。
11.直方图
11.1创建直方图--hist()
import matplotlib.pyplot as plt
import numpy as np
x = np.random.normal(170, 10, 250) #使用 NumPy 随机生成一个具有 250 个值的数组, 其中,值将集中在 170 附近,标准差为 10。
plt.hist(x)
plt.show()
⭐结果不唯一
12.饼图
12.1创建--pie()
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15]) #每个值所占大小==x/sum(x)
plt.pie(y) #从x轴开始逆时针绘图
plt.show()
12.2添加标签--labels()
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
plt.pie(y, labels = mylabels)
plt.show()
⭐在pie()中传入参数startangle=角度(例如90),可以设置起始角度,默认为0,即x轴
12.3吃披萨--explode
#将 “Apples” 楔形从饼图中心拉出 0.2:
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0] #表示每个披萨离中心点的距离
plt.pie(y, labels = mylabels, explode = myexplode)
plt.show()
⭐在pie()中传入shadow=True就可以让图具有阴影效果
⭐在pie()中传入colors=数组,数值中每个颜色对应一块楔形
12.4披萨类别(添加解释列表)--legend()
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
plt.pie(y, labels = mylabels)
plt.legend()
plt.show()
⭐可以在legend传入loc='位置'设置图例位置:
supported values are 'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center'
⭐可以在legend传入title = "标题名",设置图例标题
----------以上如有侵权请联系我
标签:教程,plt,Python,pyplot,Matplotlib,matplotlib,np,import,array From: https://blog.csdn.net/2302_81268819/article/details/142898332