Figure1.py

# -*- coding: utf-8 -*-
"""
Created on Mon Dec 28 13:47:07 2020

"""

##+++++++++++++++++++++++++++(一)绘图所需的基础库+++++++++++++++++++++++++++##
import pandas as pd # 用于处理表格数据
import numpy as np # 用于科学计算
import matplotlib.pyplot as plt  # 绘图的核心库
from matplotlib.font_manager import FontProperties # 字体属性管理器,知道就好


##+++++++++++++++++++++++++++(二)导入和准备数据+++++++++++++++++++++++++++##

# 读取CSV文件的数据,替换数据的路径即可,即单引号内的内容
data = pd.read_csv(r'C:\Users\Yi_xyf\Desktop\Datasets\dataset-1_time-speed.csv')

# 读取数据表中的时间所在列,如果是其他的列,替换单引号内的列名称即可
time = data['time']

# 读取速度所在列
speed = data['speed']


##+++++++++++++++++++++++++++(三)基本属性设置+++++++++++++++++++++++++++##
#设置画布的尺寸,单位为英寸,根据最终输出的图像大小调整一下数字
plt.figure(figsize=(3.2, 2))

# 设置坐标轴标题字体及其大小,修改字体时替换字体的路径即可
font1 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置坐标轴刻度字体及其大小
font2 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置图例字体
font3 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=7)

# 设置中文字体显示,如果途中村子中文时,取消改行的注释符号 # 即可正常显示中文
# plt.rcParams['font.sans-serif']=['STSong'] 

# 设置坐标轴线条粗细,也就是下面代码中的 cu= 的数值,一般设置为 0.6 左右即可
ax = plt.subplot(1,1,1)
cu = 0.6
ax.spines['left'].set_linewidth(cu)
ax.spines['right'].set_linewidth(cu)
ax.spines['bottom'].set_linewidth(cu)
ax.spines['top'].set_linewidth(cu)


##+++++++++++++++++++++++++++(四)绘图部分+++++++++++++++++++++++++++##
# 括号内 time,speed 对应的分别是 X 和 Y 值;lw 表示线条的宽度,一般取 0.8;
# ls 表示线条的风格,- 表示实线,-- 表示虚线,: 表示点虚线,-. 表示点划线;
# 注意这些符号需要在英文状态下输入,只修改单引号以内的内容,不要删掉单引号
# c 表示颜色,#FFF000 表示十六进制颜色代码,推荐的两个配色网站均是该类代码,可直接复制粘贴过来
# 最后的 label 表示该条线的标签,最终会展示在图例中,同样只修改单引号内的内容就可
plt.plot(time, speed, lw=0.8, ls='-', c='#ef4f4f', label=r'$s(t) = \mathcal{A}\/\sin(2 \omega t)$')

# 绘制水平线和垂线:垂直于 X 轴线条,三个数字依次表示 x, ymin, ymax
plt.vlines(25, 0, 30, color='#537EC5', linewidth=0.8, ls='--')

# 绘制水平线:垂直于 X 轴线条,三个数字依次表示 y, xmin, xmax
plt.hlines(30, 0, 25, color='#537EC5', linewidth=0.8, ls='--')

# 文本注释:单引号内表示要注释的内容;xy 表示要注释的点坐标;xytext 表示注释文字的坐标;
# 注意最后是字体的选择,这里选择前边设置的 第 2 类 字体:font2
plt.annotate('(25,30)', xy=(25, 30), xytext=(30, 20), fontproperties=font2)

# 箭头注释:单引号内是要注释内容;xy 表示要注释的点坐标;xytext 表示注释文字的坐标;字体设置同上
# 最后的是箭头设置,即 arrowprops=dict() 括号内的内容,第一个表示箭头的颜色,后面的表示箭头的类型,最后一个表示箭头的线宽
plt.annotate(r'$\mathit{\Delta V}$', xy=(25, 30), xytext=(45, 50), fontproperties=font2, arrowprops=dict(color='#373331',  arrowstyle='->',  linewidth=0.6))      

         
##+++++++++++++++++++++++++++(五)坐标轴设置及图像美化+++++++++++++++++++++++++++##
# 设置坐标轴标题的名字,及其字体类型,我们选择预设的 font1
plt.xlabel('time (s)', fontproperties=font1)
plt.ylabel('speed (km/h)', fontproperties=font1)

# 设置坐标轴刻度字体的类型(样式和大小),我们选择预设的 font2
plt.xticks(fontproperties=font2)
plt.yticks(fontproperties=font2)

# 设置图例的位置,loc 后的数字一般取 1、2、3、4,依次表示右上、左上、左下和右下
# prop 表示字体属性,我们选择预设的 font3;edgecolor 表示图例边框颜色,w 为白色;framealpha 后的数字表示透明度
plt.legend(loc=4,  prop=font3, edgecolor='w', framealpha=0)  # bbox_to_anchor=(1,0.5) 控制图例的位置

# 表示开启网格线,注释掉时不显示
#plt.grid()


##+++++++++++++++++++++++++++(六)设置坐标轴刻度范围及间隔+++++++++++++++++++++++++++##
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
from matplotlib.pyplot import MultipleLocator

# 设置坐标轴的朝向,in 表示朝内向,反之亦然
plt.tick_params(direction='in')  #设置坐标轴刻度的朝向

# 设置 X 和 Y 轴的最小最大值范围,对应的修改数字即可
plt.xlim(0, 100)
plt.ylim(0,105)

# 设置坐标轴刻度值显示间隔,对应的修改数字即可
x_major_locator=MultipleLocator(20)
y_major_locator=MultipleLocator(25)

# ax为两条坐标轴的实例,这块代码不用管
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)


##+++++++++++++++++++++++++++(七)指定图片保存位置、格式、分辨率+++++++++++++++++++++++++++##
# 保存图片,单引号内表示路径;dpi 后数字表示分辨率,一般取300;最后一个是让图四周的白边更少,不用改动
plt.savefig(r'C:\Users\Yi_xyf\Desktop\Datasets\dataset-1_time-speed.tiff', dpi=300, bbox_inches='tight')
# 这个代码每次放在最后即可
plt.show()

Figure2.py

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 30 11:12:41 2020

"""

##+++++++++++++++++++++++++++(一)绘图所需的基础库+++++++++++++++++++++++++++##
import pandas as pd # 用于处理表格数据
import numpy as np # 用于科学计算
import matplotlib.pyplot as plt  # 绘图的核心库
from matplotlib.font_manager import FontProperties # 字体属性管理器,知道就好


##+++++++++++++++++++++++++++(二)导入和准备数据+++++++++++++++++++++++++++##

# 读取CSV文件的数据,替换数据的路径即可,即单引号内的内容
data = pd.read_csv(r'C:\Users\Yi_xyf\Desktop\Datasets\dataset-2_time_speed_9.csv')

# .iloc[:,0] 表示读取 data 的某行某列,第一个 :表示所有行,0 表示读取第一列,这样就对应的第一列的所有行,注意 Python 是从 0 计数的
time = data.iloc[:,0]

##+++++++++++++++++++++++++++(三)基本属性设置+++++++++++++++++++++++++++##
#设置画布的尺寸,单位为英寸,根据最终输出的图像大小调整一下数字
plt.figure(figsize=(3.2, 2))

# 设置坐标轴标题字体及其大小,修改字体时替换字体的路径即可
font1 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置坐标轴刻度字体及其大小
font2 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置图例字体
font3 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=7)

# 设置中文字体显示,如果途中村子中文时,取消改行的注释符号 # 即可正常显示中文
# plt.rcParams['font.sans-serif']=['STSong'] 

# 设置坐标轴线条粗细,也就是下面代码中的 cu= 的数值,一般设置为 0.6 左右即可
ax = plt.subplot(1,1,1)
cu = 0.6
ax.spines['left'].set_linewidth(cu)
ax.spines['right'].set_linewidth(cu)
ax.spines['bottom'].set_linewidth(cu)
ax.spines['top'].set_linewidth(cu)


##+++++++++++++++++++++++++++(四)绘图部分+++++++++++++++++++++++++++##
# 括号内 time,speed 对应的分别是 X 和 Y 值;lw 表示线条的宽度,一般取 0.8;
# ls 表示线条的风格,- 表示实线,-- 表示虚线,: 表示点虚线,-. 表示点划线;
# 注意这些符号需要在英文状态下输入,只修改单引号以内的内容,不要删掉单引号
# c 表示颜色,#FFF000 表示十六进制颜色代码,推荐的两个配色网站均是该类代码,可直接复制粘贴过来
# 最后的 label 表示该条线的标签,最终会展示在图例中,同样只修改单引号内的内容就可

# 表示绘制第一根曲线,因为它是实线,且颜色不同于其他
plt.plot(time, data.iloc[:,1], lw=0.8, ls='-', c='#fe5f55', label='First car')

# 绘制中间的 2 ~ 8 根曲线
for i in range(2,9):
    plt.plot(time, data.iloc[:,i], lw=0.8, ls='--', c='#00509d')

# 绘制最后一根曲线    
plt.plot(time, data.iloc[:,9], lw=0.8, ls='--', c='#00509d', label='Other cars')

         
##+++++++++++++++++++++++++++(五)坐标轴设置及图像美化+++++++++++++++++++++++++++##
# 设置坐标轴标题的名字,及其字体类型,我们选择预设的 font1
plt.xlabel('time (s)', fontproperties=font1)
plt.ylabel('speed (km/h)', fontproperties=font1)

# 设置坐标轴刻度字体的类型(样式和大小),我们选择预设的 font2
plt.xticks(fontproperties=font2)
plt.yticks(fontproperties=font2)

# 设置图例的位置,loc 后的数字一般取 1、2、3、4,依次表示右上、左上、左下和右下
# prop 表示字体属性,我们选择预设的 font3;edgecolor 表示图例边框颜色,w 为白色;framealpha 后的数字表示透明度
plt.legend(loc=4,  prop=font3, edgecolor='w', framealpha=0)  # bbox_to_anchor=(1,0.5) 控制图例的位置

# 表示开启网格线,注释掉时不显示
#plt.grid()


##+++++++++++++++++++++++++++(六)设置坐标轴刻度范围及间隔+++++++++++++++++++++++++++##
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
from matplotlib.pyplot import MultipleLocator

# 设置坐标轴的朝向,in 表示朝内向,反之亦然
plt.tick_params(direction='in')  #设置坐标轴刻度的朝向

# 设置 X 和 Y 轴的最小最大值范围,对应的修改数字即可
plt.xlim(0, 300)
plt.ylim(0,105)

# 设置坐标轴刻度值显示间隔,对应的修改数字即可
x_major_locator=MultipleLocator(100)
y_major_locator=MultipleLocator(25)

# ax为两条坐标轴的实例,这块代码不用管
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)


##+++++++++++++++++++++++++++(七)指定图片保存位置、格式、分辨率+++++++++++++++++++++++++++##
# 保存图片,单引号内表示路径;dpi 后数字表示分辨率,一般取300;最后一个是让图四周的白边更少,不用改动
plt.savefig(r'C:\Users\Yi_xyf\Desktop\Datasets\dataset-2_time-speed.tiff', dpi=300, bbox_inches='tight')
# 这个代码每次放在最后即可
plt.show()

Figure3.py

# -*- coding: utf-8 -*-
"""
Created on Mon Dec 28 13:47:07 2020

"""

##+++++++++++++++++++++++++++(一)绘图所需的基础库+++++++++++++++++++++++++++##
import pandas as pd # 用于处理表格数据
import numpy as np # 用于科学计算
import matplotlib.pyplot as plt  # 绘图的核心库
from matplotlib.font_manager import FontProperties # 字体属性管理器,知道就好


##+++++++++++++++++++++++++++(二)导入和准备数据+++++++++++++++++++++++++++##

# 读取CSV文件的数据,替换数据的路径即可,即单引号内的内容
data = pd.read_csv(r'C:\Users\Administrator\Desktop\dataset-3_raw-smooth.csv')

# 读取数据表中的时间所在列,如果是其他的列,替换单引号内的列名称即可
rawdata = data['raw']

# 读取速度所在列
smoothdata = data['smooth']


##+++++++++++++++++++++++++++(三)基本属性设置+++++++++++++++++++++++++++##
#设置画布的尺寸,单位为英寸,根据最终输出的图像大小调整一下数字
plt.figure(figsize=(3.2, 2))

# 设置坐标轴标题字体及其大小,修改字体时替换字体的路径即可
font1 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置坐标轴刻度字体及其大小
font2 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置图例字体
font3 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=7)

# 设置中文字体显示,如果途中村子中文时,取消改行的注释符号 # 即可正常显示中文
# plt.rcParams['font.sans-serif']=['STSong'] 

# 设置坐标轴线条粗细,也就是下面代码中的 cu= 的数值,一般设置为 0.6 左右即可
ax = plt.subplot(1,1,1)
cu = 0.6
ax.spines['left'].set_linewidth(cu)
ax.spines['right'].set_linewidth(cu)
ax.spines['bottom'].set_linewidth(cu)
ax.spines['top'].set_linewidth(cu)


##+++++++++++++++++++++++++++(四)绘图部分+++++++++++++++++++++++++++##
# 括号内 time,speed 对应的分别是 X 和 Y 值;lw 表示线条的宽度,一般取 0.8;
# ls 表示线条的风格,- 表示实线,-- 表示虚线,: 表示点虚线,-. 表示点划线;
# 注意这些符号需要在英文状态下输入,只修改单引号以内的内容,不要删掉单引号
# c 表示颜色,#FFF000 表示十六进制颜色代码,推荐的两个配色网站均是该类代码,可直接复制粘贴过来
# 最后的 label 表示该条线的标签,最终会展示在图例中,同样只修改单引号内的内容就可
plt.plot(rawdata, lw=0.8, ls='--', c='#00a6fb', label='rawdata')
plt.plot(smoothdata, lw=1.2, ls='-', c='#ef233c', label='smoothdata')


         
##+++++++++++++++++++++++++++(五)坐标轴设置及图像美化+++++++++++++++++++++++++++##
# 设置坐标轴标题的名字,及其字体类型,我们选择预设的 font1
plt.xlabel('time (s)', fontproperties=font1)
plt.ylabel('variable', fontproperties=font1)

# 设置坐标轴刻度字体的类型(样式和大小),我们选择预设的 font2
plt.xticks(fontproperties=font2)
plt.yticks(fontproperties=font2)

# 设置图例的位置,loc 后的数字一般取 1、2、3、4,依次表示右上、左上、左下和右下
# prop 表示字体属性,我们选择预设的 font3;edgecolor 表示图例边框颜色,w 为白色;framealpha 后的数字表示透明度
# ncol=2 控制图例展示的列数;bbox_to_anchor=(x,y) 控制图例的位置。x 和 y 值为相对于坐标区的比例,依次为左右和上下
plt.legend(loc=4,  prop=font3, edgecolor='w', framealpha=0, ncol=2, bbox_to_anchor=(0.85,1.02))

# 表示开启网格线,注释掉时不显示
#plt.grid()


##+++++++++++++++++++++++++++(六)设置坐标轴刻度范围及间隔+++++++++++++++++++++++++++##
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
from matplotlib.pyplot import MultipleLocator

# 设置坐标轴的朝向,in 表示朝内向,反之亦然
plt.tick_params(direction='in')  #设置坐标轴刻度的朝向

# 设置 X 和 Y 轴的最小最大值范围,对应的修改数字即可
plt.xlim(0, 1000)
plt.ylim(-60,60)

# 设置坐标轴刻度值显示间隔,对应的修改数字即可
x_major_locator=MultipleLocator(200)
y_major_locator=MultipleLocator(20)

# ax为两条坐标轴的实例,这块代码不用管
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)


##+++++++++++++++++++++++++++(七)指定图片保存位置、格式、分辨率+++++++++++++++++++++++++++##
# 保存图片,单引号内表示路径;dpi 后数字表示分辨率,一般取300;最后一个是让图四周的白边更少,不用改动
plt.savefig(r'C:\Users\Administrator\Desktop\demo.tiff', dpi=300, bbox_inches='tight')
# 这个代码每次放在最后即可
plt.show()





Figure4.py

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 30 11:53:54 2020

"""

##+++++++++++++++++++++++++++(一)绘图所需的基础库+++++++++++++++++++++++++++##
import pandas as pd # 用于处理表格数据
import numpy as np # 用于科学计算
import matplotlib.pyplot as plt  # 绘图的核心库
from matplotlib.font_manager import FontProperties # 字体属性管理器,知道就好


##+++++++++++++++++++++++++++(二)导入和准备数据+++++++++++++++++++++++++++##

# 读取CSV文件的数据,替换数据的路径即可,即单引号内的内容
data = pd.read_csv(r'C:\Users\Administrator\Desktop\dataset-4_temperature_3.csv')

# .iloc[:,0] 表示读取 data 的某行某列,第一个 :表示所有行,0 表示读取第一列,这样就对应的第一列的所有行,注意 Python 是从 0 计数的
Temp1 = data.iloc[:,0]
Temp2 = data.iloc[:,1]
Temp3 = data.iloc[:,2]



##+++++++++++++++++++++++++++(三)基本属性设置+++++++++++++++++++++++++++##
#设置画布的尺寸,单位为英寸,根据最终输出的图像大小调整一下数字
plt.figure(figsize=(3.2, 2))

# 设置坐标轴标题字体及其大小,修改字体时替换字体的路径即可
font1 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置坐标轴刻度字体及其大小
font2 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=8)

# 设置图例字体
font3 = FontProperties(fname=r"C:\Windows\Fonts\times.TTF", size=7)

# 设置中文字体显示,如果途中村子中文时,取消改行的注释符号 # 即可正常显示中文
# plt.rcParams['font.sans-serif']=['STSong'] 

# 设置坐标轴线条粗细,也就是下面代码中的 cu= 的数值,一般设置为 0.6 左右即可
ax = plt.subplot(1,1,1)
cu = 0.6
ax.spines['left'].set_linewidth(cu)
ax.spines['right'].set_linewidth(cu)
ax.spines['bottom'].set_linewidth(cu)
ax.spines['top'].set_linewidth(cu)


##+++++++++++++++++++++++++++(四)绘图部分+++++++++++++++++++++++++++##
# bins 表示想要展示直方图的条数;facecolor 表示直方图条的颜色;edgecolor 表示直方图边框的颜色
# alpha 表示直方图的透明度;histtype 表示将直方图绘制成阶梯图
plt.hist(Temp1, bins=18, facecolor='#ffbc42', edgecolor='w', lw=1, label='Temp 1')

plt.hist(Temp2, bins=18, edgecolor='#ff0054', alpha=1, histtype='step', lw=1, label='Temp 2', ls='--')

plt.hist(Temp3, bins=18, edgecolor='#003f88', alpha=1, histtype='step', lw=1, label='Temp 2', ls='-')

# 添加科学计数法
from pylab import * 
# 设置左上角标签大小,里面的数字可以更改科学计数字符的大小
matplotlib.rcParams.update({'font.size': 8, 'font.family': 'serif'})
xfmt = ScalarFormatter(useMathText=True)
xfmt.set_powerlimits((0, 0))
ax = plt.gca()
ax.yaxis.set_major_formatter(xfmt) # 在 Y 轴展示科学计数法


##+++++++++++++++++++++++++++(五)坐标轴设置及图像美化+++++++++++++++++++++++++++##
# 设置坐标轴标题的名字,及其字体类型,我们选择预设的 font1
plt.xlabel('temperature', fontproperties=font1)
plt.ylabel('Frequency', fontproperties=font1)

# 设置坐标轴刻度字体的类型(样式和大小),我们选择预设的 font2
plt.xticks(fontproperties=font2)
plt.yticks(fontproperties=font2)

# 设置图例的位置,loc 后的数字一般取 1、2、3、4,依次表示右上、左上、左下和右下
# prop 表示字体属性,我们选择预设的 font3;edgecolor 表示图例边框颜色,w 为白色;framealpha 后的数字表示透明度
plt.legend(loc=1,  prop=font3, edgecolor='w', framealpha=0)  # bbox_to_anchor=(1,0.5) 控制图例的位置

# 表示开启网格线,注释掉时不显示
#plt.grid()


##+++++++++++++++++++++++++++(六)设置坐标轴刻度范围及间隔+++++++++++++++++++++++++++##
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
from matplotlib.pyplot import MultipleLocator

# 设置坐标轴的朝向,in 表示朝内向,反之亦然
plt.tick_params(direction='in')  #设置坐标轴刻度的朝向

# 设置 X 和 Y 轴的最小最大值范围,对应的修改数字即可
plt.xlim(-30, 30)
plt.ylim(0,130000)

# 设置坐标轴刻度值显示间隔,对应的修改数字即可
x_major_locator=MultipleLocator(10)
y_major_locator=MultipleLocator(30000)

# ax为两条坐标轴的实例,这块代码不用管
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)


##+++++++++++++++++++++++++++(七)指定图片保存位置、格式、分辨率+++++++++++++++++++++++++++##
# 保存图片,单引号内表示路径;dpi 后数字表示分辨率,一般取300;最后一个是让图四周的白边更少,不用改动
plt.savefig(r'C:\Users\Administrator\Desktop\demo.tiff', dpi=300, bbox_inches='tight')
# 这个代码每次放在最后即可
plt.show()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐