网站怎么做关键词搜索排面,注册公司最少要多少钱,根据网站做app,做网站后台的电子文库文章目录 1. Matplotlib 简介2. 安装3. Matplotlib Pyplot4. 绘制图表1. 折线图2. 散点图3. 柱状图4. 饼图5. 直方图 5. 中文显示 1. Matplotlib 简介
Matplotlib 是 Python 的绘图库#xff0c;它能让使用者很轻松地将数据图形化#xff0c;并且提供多样化的输出格式。
Ma… 文章目录 1. Matplotlib 简介2. 安装3. Matplotlib Pyplot4. 绘制图表1. 折线图2. 散点图3. 柱状图4. 饼图5. 直方图 5. 中文显示 1. Matplotlib 简介
Matplotlib 是 Python 的绘图库它能让使用者很轻松地将数据图形化并且提供多样化的输出格式。
Matplotlib 可以用来绘制各种静态动态交互式的图表。
Matplotlib 是一个非常强大的 Python 画图工具我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。
2. 安装
升级 pip
python3 -m pip install -U pip安装 matplotlib 库
python3 -m pip install -U matplotlib安装完成后我们就可以通过 import 来导入 matplotlib 库
import matplotlibprint(matplotlib.__version__)3. Matplotlib Pyplot
Pyplot 是 Matplotlib 的子库提供了和 MATLAB 类似的绘图 API。
Pyplot 是常用的绘图模块能很方便让用户绘制 2D 图表。
Pyplot 包含一系列绘图函数的相关函数每个函数会对当前的图像进行一些修改例如给图像加上标记生新的图像在图像中产生新的绘图区域等等。
使用的时候我们可以使用 import 导入 pyplot 库并设置一个别名 plt
import matplotlib.pyplot as plt这样我们就可以使用 plt 来引用 Pyplot 包的方法。
以下是一些常用的 pyplot 函数
plot()用于绘制线图和散点图scatter()用于绘制散点图bar()用于绘制垂直条形图和水平条形图hist()用于绘制直方图pie()用于绘制饼图imshow()用于绘制图像subplots()用于创建子图
4. 绘制图表
1. 折线图
import matplotlib.pyplot as plt
#绘制简单的图表
input_values [1,2,3,4,5]
squares [1,4,9,16,25]
plt.plot(input_values,squares,linewidth1)
plt.show()绘制过程中我们可以自定义线的样式包括线的类型、颜色和大小等
1.线的类型可以使用 linestyle 参数来定义简写为 ls。
类型简写说明‘solid’ (默认)‘-’实线‘dotted’‘:’点虚线‘dashed’‘–’破折线‘dashdot’‘-.’点划线‘None’‘’ 或 ’ ’不画线
import matplotlib.pyplot as plt
import numpy as npypoints np.array([6, 2, 13, 10])plt.plot(ypoints, linestyle dotted)
plt.show()2.线的颜色可以使用 color 参数来定义简写为 c。
颜色标记描述‘r’红色‘g’绿色‘b’蓝色‘c’青色‘m’品红‘y’黄色‘k’黑色‘w’白色
这里是基础的简单颜色可以自定义颜色查一下html颜色值即可
import matplotlib.pyplot as plt
import numpy as npypoints np.array([6, 2, 13, 10])plt.plot(ypoints, color r)
plt.show()3.线的宽度可以使用 linewidth 参数来定义简写为 lw值可以是浮点数如1、2.0、5.67 等。
import matplotlib.pyplot as plt
import numpy as npypoints np.array([6, 2, 13, 10])plt.plot(ypoints, linewidth 12.5)
plt.show()4.多条线的绘制
plot() 方法中可以包含多对 x,y 值来绘制多条线。
import matplotlib.pyplot as plt
import numpy as npy1 np.array([3, 7, 5, 9])
y2 np.array([6, 2, 13, 10])plt.plot(y1)
plt.plot(y2)plt.show()2. 散点图
使用 pyplot 中的 scatter() 方法来绘制散点图。
scatter() 方法语法格式如下
matplotlib.pyplot.scatter(x, y, sNone, cNone, markerNone, cmapNone, normNone, vminNone, vmaxNone, alphaNone, linewidthsNone, *, edgecolorsNone, plotnonfiniteFalse, dataNone, **kwargs)import numpy as np
import matplotlib.pyplot as plt
from pylab import *
plt.rcParams[figure.figsize](2,2)
xnp.random.normal(size100)
ynp.random.normal(size100)
plt.scatter(x,y)
plt.show()注绘制折线图、散点图时如果想给坐标定义一些不一样的标记就可以使用 plot() 方法的 marker 参数来定义。
import matplotlib.pyplot as plt
import numpy as npypoints np.array([1,3,4,5,8,9,6,1,3,4,5,2,4])plt.plot(ypoints, marker o)
plt.show()3. 柱状图
可以使用 pyplot 中的 bar() 方法来绘制柱形图。
bar() 方法语法格式如下
matplotlib.pyplot.bar(x, height, width0.8, bottomNone, *, aligncenter, dataNone, **kwargs)参数说明
x浮点型数组柱形图的 x 轴数据。
height浮点型数组柱形图的高度。
width浮点型数组柱形图的宽度。
bottom浮点型数组底座的 y 坐标默认 0。
align柱形图与 x 坐标的对齐方式‘center’ 以 x 位置为中心这是默认值。 ‘edge’将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形可以传递负数的宽度值及 align‘edge’。
**kwargs其他参数。
import numpy as np
import matplotlib.pyplot as plt
# 创建一个点数为 8 x 6 的窗口, 并设置分辨率为 80像素/每英寸
plt.figure(figsize(10, 10), dpi80)
# 柱子总数
N 10
# 包含每个柱子对应值的序列
values (56796,42996,24872,13849,8609,5331,1971,554,169,26)
# 包含每个柱子下标的序列
index np.arange(N)
# 柱子的宽度
width 0.45
# 绘制柱状图, 每根柱子的颜色为紫罗兰色
p2 plt.bar(index, values, width, labelnum, color#87CEFA)
# 设置横轴标签
plt.xlabel(clusters)
# 设置纵轴标签
plt.ylabel(number of reviews)
# 添加标题
plt.title(Cluster Distribution)
# 添加纵横轴的刻度
plt.xticks(index, (mentioned1cluster, mentioned2cluster, mentioned3cluster, mentioned4cluster, mentioned5cluster, mentioned6cluster, mentioned7cluster, mentioned8cluster, mentioned9cluster, mentioned10cluster))
# plt.yticks(np.arange(0, 10000, 10))
# 添加图例
plt.legend(locupper right)
plt.show()4. 饼图
可以使用 pyplot 中的 pie() 方法来绘制饼图。
pie() 方法语法格式如下
matplotlib.pyplot.pie(x, explodeNone, labelsNone, colorsNone, autopctNone, pctdistance0.6, shadowFalse, labeldistance1.1, startangle0, radius1, counterclockTrue, wedgepropsNone, textpropsNone, center0, 0, frameFalse, rotatelabelsFalse, *, normalizeNone, dataNone)[source]参数说明
x浮点型数组或列表用于绘制饼图的数据表示每个扇形的面积。explode数组表示各个扇形之间的间隔默认值为0。labels列表各个扇形的标签默认值为 None。colors数组表示各个扇形的颜色默认值为 None。autopct设置饼图内各个扇形百分比显示格式%d%% 整数百分比%0.1f 一位小数 %0.1f%% 一位小数百分比 %0.2f%% 两位小数百分比。labeldistance标签标记的绘制位置相对于半径的比例默认值为 1.1如 1则绘制在饼图内侧。pctdistance类似于 labeldistance指定 autopct 的位置刻度默认值为 0.6。shadow布尔值 True 或 False设置饼图的阴影默认为 False不设置阴影。radius设置饼图的半径默认为 1。startangle用于指定饼图的起始角度默认为从 x 轴正方向逆时针画起如设定 90 则从 y 轴正方向画起。counterclock布尔值用于指定是否逆时针绘制扇形默认为 True即逆时针绘制False 为顺时针。wedgeprops字典类型默认值 None。用于指定扇形的属性比如边框线颜色、边框线宽度等。例如wedgeprops{‘linewidth’:5} 设置 wedge 线宽为5。textprops字典类型用于指定文本标签的属性比如字体大小、字体颜色等默认值为 None。center浮点类型的列表用于指定饼图的中心位置默认值(0,0)。frame布尔类型用于指定是否绘制饼图的边框默认值False。如果是 True绘制带有表的轴框架。rotatelabels布尔类型用于指定是否旋转文本标签默认为 False。如果为 True旋转每个 label 到指定的角度。data用于指定数据。如果设置了 data 参数则可以直接使用数据框中的列作为 x、labels 等参数的值无需再次传递。
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm # 字体管理器
# 准备字体
my_font fm.FontProperties(fnameC:\Windows\Fonts\simkai.ttf)
# 准备数据
data [0.16881, 0.14966, 0.07471, 0.06992, 0.04762, 0.03541, 0.02925, 0.02411, 0.02316, 0.01409, 0.36326]
# 准备标签
labels [Java, C, C, Python, Visual Basic.NET, C#, PHP, JavaScript, SQL, Assembly langugage,其他]
# 将排列在第4位的语言(Python)分离出来
explode [0, 0, 0, 0.7, 0, 0, 0, 0, 0, 0, 0]
# 使用自定义颜色
colors [red, pink, magenta, purple, orange]
# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆
plt.axes(aspectequal)
# 控制X轴和Y轴的范围(用于控制饼图的圆心、半径)
plt.xlim(0, 8)
plt.ylim(0, 8)
# 不显示边框
plt.gca().spines[right].set_color(none)
plt.gca().spines[top].set_color(none)
plt.gca().spines[left].set_color(none)
plt.gca().spines[bottom].set_color(none)
# 绘制饼图
plt.pie(xdata, # 绘制数据labelslabels, # 添加编程语言标签explodeexplode, # 突出显示Pythoncolorscolors, # 设置自定义填充色autopct%.3f%%, # 设置百分比的格式,保留3位小数pctdistance0.8, # 设置百分比标签和圆心的距离labeldistance1.0, # 设置标签和圆心的距离startangle180, # 设置饼图的初始角度center(4, 4), # 设置饼图的圆心(相当于X轴和Y轴的范围)radius3.8, # 设置饼图的半径(相当于X轴和Y轴的范围)counterclockFalse, # 是否为逆时针方向,False表示顺时针方向wedgeprops{linewidth: 1, edgecolor: green}, # 设置饼图内外边界的属性值textprops{fontsize: 12, color: black,fontproperties:my_font}, # 设置文本标签的属性值frame1) # 是否显示饼图的圆圈,1为显示
# 不显示X轴、Y轴的刻度值
plt.xticks(())
plt.yticks(())
# 添加图形标题
plt.title(2018年8月的编程语言指数排行榜,fontpropertiesmy_font)
# 显示图形
plt.show() 5. 直方图
可以使用 pyplot 中的 hist() 方法来绘制直方图。
hist() 方法是 Matplotlib 库中的 pyplot 子库中的一种用于绘制直方图的函数。
hist() 方法可以用于可视化数据的分布情况例如观察数据的中心趋势、偏态和异常值等。
hist() 方法语法格式如下
matplotlib.pyplot.hist(x, binsNone, rangeNone, densityFalse, weightsNone, cumulativeFalse, bottomNone, histtypebar, alignmid, orientationvertical, rwidthNone, logFalse, colorNone, labelNone, stackedFalse, **kwargs)import numpy as np
import matplotlib.pyplot as plt
from pylab import *
xnp.random.normal(size1000)
plt.hist(x,bins10) #bins参数设置分桶数目
plt.show()5. 中文显示
Matplotlib 中文显示不是特别友好要在 Matplotlib 中显示中文我们可以通过两个方法
设置 Matplotlib 的字体参数。下载使用支持中文的字体库。
在未设置字体默认情况显示如下中文部分不能正常显示