做个进出口英文网站多少钱,mui做网站的好处,asp做的网站缺点,教育培训机构官网一. matplotlib 简介
Matplotlib是一个Python 2D绘图库#xff0c;它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。
Matplotlib试图让简单的事情变得更简单#xff0c;让无法实现的事情变得可能实现。 只需几行代码即可生成绘图#xff0c;直方…一. matplotlib 简介
Matplotlib是一个Python 2D绘图库它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。
Matplotlib试图让简单的事情变得更简单让无法实现的事情变得可能实现。 只需几行代码即可生成绘图直方图功率谱条形图错误图散点图等。
二. matplotlib 画图常见属性
1. 线条属性 color颜色 ‘b’blue‘g’green‘y’yellow‘r’red‘w’white‘k’black linestyle线条风格 ‘-’solid line style‘–’dashed line style‘-.’dash-dot line style‘:’dotted line style linewidth线宽 marker标记 ‘.’point marker‘,’pixel marker‘o’circle marker‘v’triangle_down markerimport numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig plt.figure(figsize (6,4))ax fig.add_subplot()x np.linspace(-10, 10, 200)y np.sin(x)ax.plot(x,y, color r, linewidth 1, linestyle -, marker o)plt.show()运行结果
2. 坐标轴刻度坐标轴范围坐标轴标签和图例 坐标轴刻度和范围 set_xticks设置x轴刻度set_yticks设置y轴刻度set_xlim设置x轴范围set_ylim设置y轴范围 import numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig plt.figure(figsize (6,4))ax fig.add_subplot()x np.linspace(-10, 10, 200)y np.sin(x)ax.plot(x,y)ax.set_xticks(np.arange(-10, 11, 1))ax.set_yticks(np.arange(-2, 3, 1))ax.set_xlim(-10, 10)ax.set_ylim(-2, 2)plt.show()运行结果 坐标轴标签和图例 set_xlabel设置x轴标签set_xlabel设置y轴标签plot方法的label属性可以设置图例legend显示图例 import numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig plt.figure(figsize (6,4))ax fig.add_subplot()x np.linspace(-10, 10, 200)y1 np.sin(x)y2 np.cos(x)ax.plot(x,y1, label sin)ax.plot(x, y2, label cos)ax.set_xlabel(x)ax.set_ylabel(y)ax.legend()plt.show()运行结果
3. 文本和注释 text设置文本 import numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig plt.figure(figsize (6,4))ax fig.add_subplot()x np.linspace(-10, 10, 200)y np.sin(x)ax.plot(x, y)ax.set_ylim(-2, 3)ax.text(x 0, y 1.5, s text)plt.show()运行结果 annotate设置注释 import numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig plt.figure(figsize (6,4))ax fig.add_subplot()x np.linspace(-10, 10, 200)y np.sin(x)ax.plot(x, y)ax.set_ylim(-2, 3)ax.annotate(zero_point, xy (0, 0), xytext (0, 1), arrowprops {headwidth:4,width:2})plt.show()运行结果
三. matplotlib 绘制多个子图
matplotlib的图像位于Figure对象中空的Figure对象不能绘图还需要在Figure对象上添加子图才能真正绘图matplotlib中提供了两种方法可以添加子图。
1. add_subplot
import numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig plt.figure(figsize (6,4))ax1 fig.add_subplot(2, 2, 1)ax2 fig.add_subplot(2, 2, 2)ax3 fig.add_subplot(2, 2, 3)ax4 fig.add_subplot(2, 2, 4)x np.linspace(-10, 10, 200)y1 np.sin(x)y2 np.cos(x)y3 np.tan(x)y4 2 * x 10ax1.plot(x, y1)ax2.plot(x, y2)ax3.plot(x, y3)ax4.plot(x, y4)plt.show()运行结果
2. subplots
import numpy as np
import matplotlib.pyplot as pltif __name__ __main__:fig,axes plt.subplots(2, 2, figsize (6,4))x np.linspace(-10, 10, 200)y np.sin(x)for i in range(0, 2):for j in range(0, 2):axes[i][j].plot(x,y)plt.show()运行结果
四. matplotlib 绘制常见图形
1. 折线图
将每个数据点连接起来就构成折线图折线图可以直观显示数据的值和变化趋势。
import numpy as np
import matplotlib.pyplot as plt#中文格式
plt.rcParams[font.sans-serif] [SimHei]
plt.rcParams[axes.unicode_minus] Falseif __name__ __main__:fig plt.figure(figsize(15, 8))ax fig.add_subplot()x np.linspace(-10, 10, 200)y np.sin(x)ax.plot(x, y, labelsin)ax.legend()plt.show()运行结果
2. 散点图
散点图一般用于分析两个变量之间是否存在某种关联。
import numpy as np
import matplotlib.pyplot as plt#中文格式
plt.rcParams[font.sans-serif] [SimHei]
plt.rcParams[axes.unicode_minus] Falseif __name__ __main__:fig plt.figure(figsize(15, 8))ax fig.add_subplot()x [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64,163.56, 120.06, 207.83, 342.75, 147.9, 53.06, 224.72, 29.51,21.61, 483.21, 245.25, 399.25, 343.35]y [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9, 239.34,140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1,30.74, 400.02, 205.35, 330.64, 283.45]ax.scatter(x, y)plt.show()运行结果
2. 直方图
直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况一般用来展示数据的分布。
import numpy as np
import matplotlib.pyplot as plt#中文格式
plt.rcParams[font.sans-serif] [SimHei]
plt.rcParams[axes.unicode_minus] Falseif __name__ __main__:fig plt.figure(figsize(15, 8))ax fig.add_subplot()students_score [22, 87, 5, 43, 56, 73, 55, 54, 11, 20, 51, 5, 79, 31, 27, 67]ax.hist(students_score, bins[0, 20, 40, 60, 80, 100], densityTrue)ax.set_xlabel(分数)ax.set_ylabel(数量)ax.set_xticks([0, 20, 40, 60, 80, 100])plt.show()运行结果
3. 柱状图
柱状图使用柱状显示数据,能够一眼看出各个数据的大小,比较数据之间的差别。
import numpy as np
import matplotlib.pyplot as plt#中文格式
plt.rcParams[font.sans-serif] [SimHei]
plt.rcParams[axes.unicode_minus] Falseif __name__ __main__:fig plt.figure(figsize(15, 8))ax fig.add_subplot()movie_name [雷神3诸神黄昏, 正义联盟, 东方快车谋杀案, 寻梦环游记, 全球风暴, 降魔传,追捕, 七十七天, 密战, 狂兽, 其它]# 横坐标x range(len(movie_name))# 票房数据y [73853, 57767, 22354, 15969, 14839, 8725, 8716, 8318, 7916, 6764, 52222]ax.bar(x, y, width0.5, color[b, r, g, y, c, m, y, k, c, g, b])ax.set_xticks(x, movie_name, fontsize10)plt.show()运行结果
4. 饼图
饼图由不同类别数据所占的比例构成一般用来展示不同类别的数据所占总体的比例。
import numpy as np
import matplotlib.pyplot as plt#中文格式
plt.rcParams[font.sans-serif] [SimHei]
plt.rcParams[axes.unicode_minus] Falseif __name__ __main__:fig plt.figure(figsize(15,8))ax fig.add_subplot()data [23, 17, 35, 29, 12]data_label [C, C, Java, Python, PHP]ax.pie(data, labelsdata_label, autopct%1.2f%%, colors[red, blue, yellow, green, orange])plt.show()运行结果