python画图函数plots()_Python画图基础操作详解
python 画图介绍
本⽂以实⽤为第⼀⽬标,保证读者在看完此⽂之后可以迅速上⼿ python 画图,掌握所有画图的基本技巧。(收藏的同时点个赞呗ヽ(·ω·)ゝ)库加载
我们使⽤ matplotlib 来进⾏ python 画图,具体的库加载以及初始设置代码如下所⽰。
import numpy as np # 加载数学库⽤于函数描述
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import style
plt.figure(figsize=(10, 10), dpi=70) # 设置图像⼤⼩
# style.use('ggplot') # 加载'ggplot'风格
# f, ax = plt.subplots(1, 3) # 设置⼦图
每⼀段代码都有注释,可以根据注释把握每⾏代码的内容。看不懂也没有关系,先把代码加上,继续往下看即可。python 画图的原理
其实原理⾮常简单,就是给出⼀个横坐标的 list,再给出⼀个对应的纵坐标 list,然后设置点⼤⼩、点外框⼤⼩、线⼤⼩、点颜⾊、线颜⾊、点形状、线形状、标题、标签即可。设置部分的内容看起来很多,但其实也可以不⽤设置,不设置就代表使⽤默认的⼤⼩、形状以及颜⾊。
除此之外,画图最主要的分类就是画点还是将点连线,如果使⽤ scatter 函数,则将散点画在图中;如果使⽤ plot 函数,则会将散点连线,在下⽂中,读者将会更深刻地感受到这⼀点。图像加载
# plt.tight_layout() # 当有多个⼦图时,可以使⽤该语句保证各⼦图标题不会重叠
# plt.savefig('myplot1.pdf', dpi=700) # dpi 表⽰以⾼分辨率保存⼀个图⽚⽂件,pdf为⽂件格式,输出位图⽂件
plt.show() # 渲染图⽚
上述的代码中主要就是 plt.show() 语句,其余语句都是⼀些其余设置,看注释即可明⽩。画图分类
python 中画图主要分为下述⼏类。画单点
画散点
画散点连线
画函数
主要涉及到的⼀些 操作 分为下述⼏类。⼦图
设置横纵坐标范围
图像标题
图像中画图类型的标签
画单点
画单点⽐较简单,给出下述代码以及返回结果即可掌握。(需要加⼊最开头给出的初始设置内容)
def main():
X = 1
Y = 100
plt.scatter(X, Y, s=50) // s为点⼤⼩
plt.show()
上图是加载了 style.use('ggplot') 该风格后的效果,如果去掉该⾏,输出将如下所⽰。
读者可以根据⾃⼰的喜好选择该风格,也可以去搜索其他的风格,下⽂接下来的⽰例将均使⽤ 'ggplot' 风格进⾏展⽰。
画散点
知道了画单点的⽅法之后,画散点就变得⾮常简单,因为我们只需要将单点中传⼊的单变量改成⼀个 list 即可,具体代码和效果如下所⽰。def main():
X, Y = [], []
for i in range(1, 10):
X.append(i)
Y.append(np.sin(i))
plt.scatter(X, Y, s=50)
plt.show()
散点连线
只有散点,通常会使得图像变得不够直观,因此我们使⽤ plot 函数将所有散点连在⼀起,具体操作如下所⽰。
def main():
X, Y = [], []
for i in range(1, 10):
X.append(i)
Y.append(np.sin(i))
plt.scatter(X, Y, s=50)
plt.show()
我们也可以对 plot 函数进⾏设置,即可输出如下所⽰图形。
def main():
X, Y = [], []
for i in range(1, 10):
X.append(i)
Y.append(np.sin(i))
plt.plot(X, Y, '-p', color='grey',
marker = 'o',
markersize=8, linewidth=2,
markerfacecolor='red',
markeredgecolor='grey',
markeredgewidth=2)
plt.show()
可以看到我们对于点⼤⼩、颜⾊、点外框颜⾊、⼤⼩以及线颜⾊、线宽均进⾏了设置,读者可以⾃⾏选择设置选项进⾏尝试。
画函数
尽管散点连线了,但是由于散点的密度不够⼤,因此我们可以进⼀步的使⽤ 只有散点,通常会使得图像变得不够直观,因此我们使⽤ plot 函数将所有散点连在⼀起,具体操作如下所⽰。
def main():
X = np.linspace(1, 10, 100) # 将[1,10]区间均分为100个点,得到100个横坐标
Y = np.sin(X) # 求出100个点的纵坐标
plt.plot(X, Y, color="red", linewidth=1.0, line) # 将100个散点连在⼀起
plt.show()线条形状、颜⾊、标签
在画函数中我们可以设置线条形状 linestyle 、线条宽度 linewidth 以及线条颜⾊ color。我们接下来介绍常见的⼏种线条形状以及如何给线条加上标签,并给出具体的代码供读者参考。
def main():
X = np.linspace(1, 10, 100)
Y1 = np.sin(X)
Y2 = np.cos(X)
Y3 = -X
Y4 = X
plt.plot(X, Y1, color="lightcoral", linewidth=3.0, line, label="-")
plt.plot(X, Y2, color="burlywood", linewidth=3.0, line, label="--")
plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, line, label="-.")
plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, line, label=":")
plt.legend(loc="best") # 把标签加载到图中哪个位置
plt.show()
常见的 linestyle 还有 '-', '--', '-.', ':', 'solid', 'dashed', 'dashdot', 'dotted',读者可以⾃⾏尝试。 常见的 legend 的 loc 位置还有 best, upper right, upper left, lower left, lower right, right, center left, center right, lower center, upper center, center,其中 best 表
⽰将标签加载到 python 认为最佳的位置。⽀持 Latex 的标签
由于是函数作图,因此我们通常会将标签设置为线条所代表的函数值,因此我们需要介绍⽀持 Latex 的标签。我们将 label 的数值设置为r'$x_n$' 即可⽀持 $Latex$,如下图所⽰。
def main():
X = np.linspace(0, 1, 100)
python新手代码画图
Y1 = np.sqrt(X)
Y2 = X
Y3 = X * X
Y4 = X * X * X
plt.plot(X, Y1, color="lightcoral", linewidth=3.0, line, label=r"$y_1=\sqrt{x}$")
plt.plot(X, Y2, color="burlywood", linewidth=3.0, line, label=r"$y_2=x$")
plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, line, label=r"$y_3=x^2$")
plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, line, label=r"$y_4=x^3$")
plt.legend(loc="best")
plt.show()设置横纵坐标标号以及图像标题
最后我们需要介绍如何给该图像设置横纵坐标、范围以及标题。我们⾸先不设置范围,则具体代码以及输出图形如下。def main():
X = np.linspace(0, 1, 100)
Y1 = np.sqrt(X)
Y2 = X
Y3 = X * X
Y4 = X * X * X
plt.plot(X, Y1, color="lightcoral", linewidth=3.0, line, label=r"$y_1=\sqrt{x}$")
plt.plot(X, Y2, color="burlywood", linewidth=3.0, line, label=r"$y_2=x$")
plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, line, label=r"$y_3=x^2$")
plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, line, label=r"$y_4=x^3$")
plt.legend(loc="best")
# x、y坐标以及标题
plt.xlabel('x', fontsize=18)
plt.ylabel('y', fontsize=18)
plt.title(r'$f(x)=\sqrt{x},x,x^2,x^3$', fontsize=18)
plt.show()设置横纵坐标的范围
有的时候我们会觉得系统默认的横纵坐标范围不合适,因此我们需要⾃⾏设置横纵坐标,具体代码以及结果如下所⽰。def main():
X = np.linspace(0, 2, 100)
Y1 = np.sqrt(X)
Y2 = X
Y3 = X * X
Y4 = X * X * X
plt.plot(X, Y1, color="lightcoral", linewidth=3.0, line, label=r"$y_1=\sqrt{x}$")
plt.plot(X, Y2, color="burlywood", linewidth=3.0, line, label=r"$y_2=x$")
plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, line, label=r"$y_3=x^2$")
plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, line, label=r"$y_4=x^3$")
plt.legend(loc="best")
# x、y坐标以及标题
plt.xlabel('x', fontsize=18)
plt.ylabel('y', fontsize=18)
plt.title(r'$f(x)=\sqrt{x},x,x^2,x^3$', fontsize=18)
# 设置坐标范围
plt.ylim(-1, 4)
plt.xlim(-1, 4)
plt.show()给函数中的⼀个点标号
当函数⽐较复杂的时候,我们往往需要对关键点进⾏标号,通常使⽤的⽅式是加箭头或者不加,我们先给出加箭头的代码以及结果。def main():
X = np.linspace(0, 1, 100)
Y1 = np.sqrt(X)
Y2 = X
Y3 = X * X
Y4 = X * X * X
plt.plot(X, Y1, color="lightcoral", linewidth=3.0, line, label=r"$y_1=\sqrt{x}$")
plt.plot(X, Y2, color="burlywood", linewidth=3.0, line, label=r"$y_2=x$")
plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, line, label=r"$y_3=x^2$")
plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, line, label=r"$y_4=x^3$")
plt.legend(loc="best")
# x、y坐标以及标题
plt.xlabel('x', fontsize=18)
plt.ylabel('y', fontsize=18)
plt.title(r'$f(x)=\sqrt{x},x,x^2,x^3$', fontsize=18)
# 关键点标号
plt.scatter(1, 1, s=100)
plt.ylim(-1, 2)
plt.annotate('End Point', fontsize=20,
xy=(1, 1), xycoords='data',
xytext=(0.8, 0.95), textcoords='axes fraction',
arrowprops=dict(facecolor='black', shrink=0.1),
horizontalalignment='right', verticalalignment='top')
plt.show()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。