参考视频:Python线图点图--15分钟详解matplotlib.pyplot.plot #011_哔哩哔哩_bilibili
一、绘图基础
#导入画图包,以及数据包
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
#给出数据
X = np.arange(0,12,0.1) #从0到12,步长为0.1
Y = np.sin(X)
#画图
plt.plot(X,Y)
plt.show() #显示图片
显示如下图:
二、线的设置
1、直接以plot的第三个参数设置
#设置线是红色的
plt.plot(X,Y,'r')
# 设置线为红色的虚线'r--'。
# 设置线为红色的点虚线'r:'。
# 设置线为红色的线点虚'r-.'。
plt.plot(X,Y,'r--')
红色的线点虚如下:
2、单独设置颜色
#color单独设置线的颜色,linestyle设置线的类型,linewidth设置线的宽度
plt.plot(X,Y,color = 'purple',linestyle = '-',linewidth = 6)
图片显示如下:
三、点的设置
1、可以将线性图设置为散点图,用marker来设置相关内容,在设置过程中,可以用‘\’来表示换行
# marker设置点的形状,'o'表示圆点,'^'表示上尖角,'v'表示下尖角。
# markerfacecolor表示marker的内核颜色。
# markeredgecolor表示marker的边缘颜色。
# markersize设置marker的大小。
# markeredgewidth设置marker的边缘线条粗细
plt.plot(X,Y,color = 'purple',linestyle = '-',linewidth = 6,\
marker = 'o',markerfacecolor = 'lime',markeredgecolor = 'red', \
markersize = 4,markeredgewidth = 1)
绘制下图:
2、散点图一般可以用scatter来绘制,plot也可以达到相同效果
plt.scatter(X,Y,edgecolors='red',facecolors = 'lime')
若用plot函数绘图,将其中linestyle的值赋为空,linestyle = '',最终不会显示线条
四、字的设置
#取出图片的坐标轴
ax1 = plt.gca()
#设置图片标题,fontname设置字体,fontsize设置字号,weight设置粗体,style设置斜体
ax1.set_title('Big Title',fontname = 'Arial',fontsize = 20,\
weight = 'bold',style = 'italic')
#设置x轴和y轴的标签
ax1.set_xlabel('time(UTC)')
ax1.set_ylabel('T($^o$C)')
设置后的图形如下:
五、刻度的设置
# 设置刻度线条,axis可以选择x轴、y轴或者两者都选。
# direction设置刻度线条朝向,color设置颜色。
# length设置长度,width设置宽度
ax1.tick_params(axis='both',direction = 'in',\
color = 'blue',length = 10,width = 2)
图示如下:
六、多条线的设置
#label设置线条图例,zorder设置多线条前后顺序,zorder越小越靠近屏幕
plt.plot(X+2,Y,label = 'strange',zorder = 2)
#标签标记位置在左下角
plt.legend(loc='lower left')
七、坐标轴的设置
1、多图形坐标轴
# 子图的绘制:fig,ax = plt.subplots(row_num,cal_num)
# 用ax下标来区分不同的图
fig,ax = plt.subplots(2,1) #2行1列
# 在指定的坐标轴中画图ax[×].plot
# plt.plot画图时不能指定
ax[1].plot(X,Y)
ax[0].plot(X+2,Y,'r')
# 设定坐标轴范围,可以对比
# ax[×].set_ylim()可以设置y轴范围
ax[0].set_xlim([0,10])
ax[1].set_xlim([0,10])
2、指数坐标轴
# 设置指数坐标轴:
# ax.set_xscale('log')
# ax.set_xscale('log')
X2 = np.arange(1,100,1)
Y2 = np.exp(X2)
plt.plot(X2,Y2)
#取出坐标轴
ax = plt.gca()
#将y轴坐标轴设置为指数
ax.set_yscale('log')
3、双坐标轴
#ax和ax2 共用一个x轴
ax2 = ax.twinx()
ax3 = ax2.twiny()
#将X,Y花在该坐标轴下,并且用红色的点虚线画出
ax3.plot(X,Y,'ro')
PS:蓝色的线使用 下 左 坐标轴,红色的点虚线使用 上 右 坐标轴
八、图片的保存设置
#保存到PNG图片,dpi表示分辨率
plt.savefig('./××××.png',dpi=400)
若图片有部分缺失,则,
方法一:在画图之前先布好画布,增大画布
fig = plt.figure(figsize=(8,4))
方法二:紧致布局,在画完图后将图片按比例缩小
plt.tight_layout()