当前位置: 首页 > news >正文

python数据分析——数据可视化(图形绘制基础)

数据可视化(图形绘制基础)

  • 前言
  • 一、图形绘制基础
    • Matplotlib简介
    • 使用过程
    • sin函数示例
  • 二、常用图形绘制
    • 折线图的绘制
      • plot
      • 示例
    • 散点图的绘制
      • plot
      • 示例
    • 柱状图的绘制
      • bar
      • 示例
    • 箱型图绘制
      • plot.box
      • 示例
    • 饼状图的绘制
      • pie
      • 示例
  • 三、图形绘制的组合情况
    • 多个折线图的组合绘制
      • 示例
    • 折线图和散点图的组合绘制
      • 示例
    • 柱状图与折线图的组合绘制
      • 示例


前言

数据可视化是指利用图形、表格、图表等方式将数据展示出来,使得数据更加清晰、易于理解和分析。图形绘制是数据可视化的基础,通过绘制各种图形呈现数据,可以更加直观地了解数据之间的关系和趋势。

如果画图过程中出现FutureWaring问题

import warning
warnings.filterwarnings('ignore')

针对中文不显示

plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

在当今数字化时代,数据分析已成为各行各业中不可或缺的一环。Python,作为数据分析领域的明星语言,凭借其强大的数据处理能力和丰富的库资源,正逐渐受到越来越多数据分析师的青睐。而在数据分析的过程中,数据可视化作为直观展示数据特征和规律的重要手段,更是不可或缺。

Python中,有许多专门用于数据可视化的库,其中最为著名的莫过于MatplotlibSeabornMatplotlib作为Python中最早的数据可视化库,提供了丰富的绘图函数和灵活的配置选项,可以满足大部分基本的绘图需求。而Seaborn则是在Matplotlib的基础上,进一步封装和优化,提供了更加美观和高级的绘图接口。

在图形绘制基础方面,我们需要掌握几个核心概念,包括坐标轴、图例、标题、标签等。坐标轴是图表的基础,用于展示数据的分布情况;图例用于区分不同系列的数据;标题和标签则用于说明图表的主题和内容。

接下来,我们通过几个简单的例子来演示如何使用Matplotlib进行基本的图形绘制。

我们使用Matplotlib来绘制一个简单的折线图。假设我们有一组关于某公司股票价格的数据,我们可以通过折线图来展示股票价格的走势。在Matplotlib中,我们可以使用plot()函数来绘制折线图,通过设置x轴和y轴的数据,以及图表的标题、坐标轴标签等参数,就可以生成一个基本的折线图。

当然,除了折线图和箱线图之外,还有许多其他类型的图形可以用于数据可视化,如柱状图、散点图、饼图等。每种图形都有其适用的场景和优缺点,需要根据具体的数据特征和需求来选择合适的图形类型。


一、图形绘制基础

Matplotlib简介

Matplotlib是目前应用最为广泛的python扩展绘图模块库,是Python中最受欢迎的数据可视化软件包之一。Matplotlib支持跨平台运行,能让使用者很轻松地将数据转化为高质量图形,并且提供了多样化的输出格式,常用于绘制2D图形,同时也提供了一部分3D绘图接口。

Matplotlib提供了类似于MATLAB的绘图函数,对于熟悉MATLAB的使用者来说,可以很容易的使用它。Matplotlib通常与NumPypandas扩展包一起使用,最常见的使用方式是根据NumPy库的N维数组类型ndarray来绘制2D图像,使用简单、代码清晰易懂,深受广大技术爱好者的喜爱,是数据分析中不可或缺的重要工具之一。

使用过程

使用pylabpyplot绘图时一般过程为:首先读入数据,然后根据实际需要绘制折线图、散点图、柱状图、饼状图、雷达图或三维曲线和曲面,接下来设置轴和图形属性,最后显示或保存绘图结果。
在这里插入图片描述

sin函数示例

【例7.1】请利用python绘制正弦函数曲线。

关键技术:采用MatplotlibPyplot模块的plot函数绘制曲线图。

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import math
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
x = np.arange(0,math.pi*2,0.05)
y = np.sin(x)
plt.plot(x,y)
plt.xlabel("angle")
plt.ylabel("sine")
plt.title("sine curve")
plt.show()

在这里插入图片描述
在这里插入图片描述

二、常用图形绘制

折线图的绘制

折线图是最基本的图表类型,是用点和点之间连线的上升或下降表示指标的连续变化趋势。折线图反映了一段时间内事物连续的动态变化规律,适用于描述一个变量随另一个变量变化的趋势,通常用于绘制连续数据,适合数据点较多的情况。

plot

matplotlib是一个用于绘制图形的Python库,其中的plot函数用于绘制线条图。下面是matplotlibplot函数的详细解释:

plot(x, y, label, linestyle, color, linewidth, marker)

参数说明:

  • x:表示x轴上的数据序列,可以是一个列表、数组或Series类型的数据,也可以是一个数字,此时表示生成从0到该数字的等间隔的数据序列。
  • y:表示y轴上的数据序列,要求与x轴上的数据序列长度相同。
  • label:给绘制的线条指定一个标签,可以在绘制图例时使用。
  • linestyle:线条的样式,可以是实线(‘solid’)、虚线(‘dashed’)、点线(‘dotted’)等,默认为实线。
  • color:线条的颜色,可以是一个关键字字符串(如’red’、'blue’等),也可以是一个RGB元组表示的颜色(如(0.1, 0.2, 0.3)),默认为蓝色。
  • linewidth:线条的宽度,可以是一个数字,默认为1。
  • marker:线条上的标记点的样式,可以是一个关键字字符串(如’+'、‘o’等),也可以是一个标记字符(如’x’、's’等),默认为没有标记点。

使用plot函数可以绘制不同样式的线条图,可以通过设置不同的参数来定制线条的样式、颜色、宽度、标记点等。在绘制完所有的线条后,可以使用plt.legend()函数来添加图例,使得不同线条对应的标签在图中显示出来。

示例

【例7.4】请根据给定的两组数据xy,分别代表某城镇居民消费水平增长率和对应的年份,利用Python绘制城镇居民消费水平增长率折线图。

关键技术:利用matplotlib包的plot方法进行折线图的绘制。

y = [8.07,6.42,9.79,8.20,7.69,6.02,7.86,6.93,6.84,9.04,10.06]
x= [2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020]
plt.plot(x,y,'g',lw = 4,label = '城镇居民消费水平增长率')
plt.legend(loc = 5)
plt.grid(True)
plt.xlabel("年")
plt.ylabel('增长率')
plt.title("我国历年城镇消费水平增长率")

在这里插入图片描述
在这里插入图片描述

散点图的绘制

散点图是以直角坐标系中各点的密集程度和变化趋势来表示两种现象间的相关关系,常用于显示和比较数值。当要在不考虑时间的情况下比较大量数据点时,使用散点图比较数据方便直观。散点图将序列显示为一组点,其中每个散点值都由该点在图表中的坐标位置表示。对于不同类别的点,则由图表中不同形状或颜色的标记符表示。同时,也可以设置标记符的颜色或大小。

plot

matplotlib是一个用于绘制图形的Python库,其中的plot函数用于绘制线条图。

下面是matplotlibplot函数的详细解释:

plot(x, y, label, linestyle, color, linewidth, marker)

参数说明:

  • x:表示x轴上的数据序列,可以是一个列表、数组或Series类型的数据,也可以是一个数字,此时表示生成从0到该数字的等间隔的数据序列。
  • y:表示y轴上的数据序列,要求与x轴上的数据序列长度相同。
  • label:给绘制的线条指定一个标签,可以在绘制图例时使用。
  • linestyle:线条的样式,可以是实线(‘solid’)、虚线(‘dashed’)、点线(‘dotted’)等,默认为实线。
  • color:线条的颜色,可以是一个关键字字符串(如’red’、'blue’等),也可以是一个RGB元组表示的颜色(如(0.1, 0.2, 0.3)),默认为蓝色。
  • linewidth:线条的宽度,可以是一个数字,默认为1。
  • marker:线条上的标记点的样式,可以是一个关键字字符串(如’+'、‘o’等),也可以是一个标记字符(如’x’、's’等),默认为没有标记点。

使用plot函数可以绘制不同样式的线条图,可以通过设置不同的参数来定制线条的样式、颜色、宽度、标记点等。在绘制完所有的线条后,可以使用plt.legend()函数来添加图例,使得不同线条对应的标签在图中显示出来。

示例

【例7.5】对于给定的两个市场收益率的波动情况数据xy,请利用Python绘制散点图来反映两个市场的波动率情况。

关键技术:利用matplotlib包的plot函数进行散点图的绘制,与绘制折线图相比,绘制散点图只用到一组数据,而绘制折线图需要用到两组对应的数据。

x = np.random.randint(0,5,10)
y = np.random.randint(0,5,10)
plt.figure(figsize = (10,10))
plt.subplot(121)
plt.ylim((-5,5))
plt.plot(x,'ro',label = '第一组')
plt.grid(True)
plt.title('第一组市场波动情况')
plt.subplot(122)
plt.ylim((-5,5))
plt.plot(y,'b*',label = '第二组')
plt.grid(True)
plt.title('第二组市场波动情况')
plt.savefig('test',dpi = 600)
plt.show()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

柱状图的绘制

bar

matplotlibbar函数用于绘制柱状图,它是一个非常常用的数据可视化工具。

下面是bar函数的详细介绍:

语法:

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, align='center', data=None, **kwargs)

参数:

  • x:柱状图的x轴位置,可以是一个数值或者一个数组,表示每个柱状图的位置。
  • height:柱状图的高度,可以是一个数值或者一个数组,表示每个柱状图的高度。
  • width:柱状图的宽度,默认值为0.8。
  • bottom:柱状图的底部位置,默认为None,表示从0开始绘制柱状图。
  • align:柱状图的对齐方式,默认为’center’,表示柱状图的中心与给定位置对齐。
  • data:传入一个DataFrame或者一个类似结构的数据集,xheight参数可以直接从data中获取。

其他常用参数:

  • color:柱状图的颜色,可以是一个字符串,表示柱状图颜色的名称,也可以是一个列表,表示每个柱状图的颜色。
  • edgecolor:柱状图的边框颜色,默认为None,表示不显示边框。
  • label:柱状图的标签,可以在图例中显示。
  • tick_label:柱状图的刻度标签,可以在x轴上显示。
  • alpha:柱状图的透明度,取值范围为0到1。

用例:

import matplotlib.pyplot as plt
import numpy as npx = np.arange(5)
y = [1, 4, 3, 2, 5]
plt.bar(x, y, color='blue', align='center')plt.xlabel('x')
plt.ylabel('y')
plt.title('Bar Chart')
plt.show()

此代码将绘制一个简单的柱状图,x轴是0到4,y轴是给定的数组y的值。柱状图的颜色为蓝色,对齐方式为居中。在图像的x轴标签、y轴标签和标题上显示对应的文字。最后调用plt.show()来显示图像。

以上提供了matplotlibbar函数的详细介绍和一个简单的用例。通过使用不同的参数和组合,您可以根据自己的需求绘制出各种类型的柱状图。

示例

【例7.7】对于给定的2020年9月至2021年3月期间某基金产品发行数量的数据,该数据以字典形式存储,形式如下所示。请利用Python将其以柱状图的形式绘制出来。

{'202009': 2324,'202010': 2814,'202011': 2525,'202012':2946,'202101': 3019,'202102': 2087,'202103': 3398}

关键技术:可以利用Python的matplotlib包的bar方法进行柱状图绘制。

dict = {'202009': 2324,'202010': 2814,'202011': 2525,'202012': 2946,'202101': 3019,'202102': 2087,'202103': 3398}
plt.figure (figsize= (9,5) )
plt.bar (dict.keys (),dict.values (),width=0.3, align='center' , label=' funds')
plt.grid (True)
plt.legend (loc=1)
plt.xlabel ('月')
plt.ylabel('发行数量')
plt.title('基金产品发行数量')
plt.savefig ( 'test', dpi=600)

在这里插入图片描述

在这里插入图片描述

箱型图绘制

plot.box

plot.boxmatplotlib库中的一个函数,用于绘制箱线图。箱线图是一种统计图表,用于展示一组数据的分布情况。它显示了数据的中位数、上下四分位数、最小值和最大值,以及异常值。

箱线图可以帮助我们了解数据的偏态、离散度和异常值情况。

plot.box的基本语法为:

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=False, showmeans=False, showcaps=True, showbox=True, showfliers=True, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, zorder=None)

参数说明:

  • x:要绘制箱线图的数据,可以是一个一维数组或一个二维数组。
  • notch:箱线图的缺口,默认为None
  • sym:异常值的标记,默认为None
  • vert:箱线图的方向,默认为True(垂直方向),设置为False可以绘制水平方向的箱线图。
  • whis:决定绘制箱线图上下边界的位置,默认为1.5
  • boxprops:箱线图的属性设置,包括颜色、线宽等,默认为None
  • flierprops:异常值的属性设置,默认为None
  • medianprops:中位数的属性设置,默认为None
  • meanprops:均值的属性设置,默认为None
  • capprops:边界线的属性设置,默认为None
  • whiskerpropswhisker的属性设置,默认为None
  • manage_xticks:是否自动管理x轴的刻度,默认为True
  • autorange:是否自动确定y轴的范围,默认为False
  • zorder:图层顺序,默认为None

除了以上参数,plot.box还可以接受一些其他参数,用于设置标题、坐标轴标签、图例等。详细的参数说明可以参考matplotlib官方文档。

下面是一个简单的示例代码,演示如何使用plot.box绘制箱线图:

import matplotlib.pyplot as plt
import numpy as np# 生成一组随机数据
np.random.seed(123)
data = np.random.normal(0, 1, 100)# 绘制箱线图
plt.boxplot(data)# 添加标题和坐标轴标签
plt.title('Box Plot')
plt.xlabel('Data')# 显示图形
plt.show()

运行以上代码,会生成一个简单的箱线图,显示了随机数据的中位数、上下四分位数、最小值和最大值,以及异常值(如果有)。

除了上述的示例代码,plot.box还可以接受一维或二维的数据作为参数,用于绘制多组数据的箱线图。可以通过设置参数来修改箱线图的样式,如颜色、线宽等。此外,还可以使用matplotlib的其他函数和方法来进一步自定义绘图。

示例

【例7.8】下面给定的数据是某公司产品在各个国家用户的消费分布图,请根据以下数据利用Python绘制箱型图。

'Japan': [1200, 1300, 1500, 1400, 1600, 1600, 1800, 1800, 1900, 2400],
'USA': [1200, 1350, 1400, 1500, 1660, 1800, 1700, 1900, 2100, 2000],
'Russia': [1100, 1200, 1200, 1400, 1300, 1600, 1700, 1900, 1900, 1800],
"Korean": [1200, 1100, 1000, 1300, 1200, 1500, 1600, 1700, 1800, 1800]

关键技术:可以利用Python的plot.box绘制箱型图。

data = {'Japan': [1200,1300,1500,1400,1600,1600,1800,1800,1900,2400],
'USA': [1200, 1350, 1400, 1500, 1660, 1800, 1700, 1900, 2100, 2000],
'Russia': [1100, 1200, 1200, 1400, 1300, 1600, 1700, 1900, 1900, 1800],
"Korean": [1200, 1100, 1000, 1300, 1200, 1500, 1600, 1700, 1800, 1800]}
df = pd.DataFrame(data)
df.plot.box(title  = "某公司产品各个国家用户消费分布图")
plt.grid(linestyle = '--',alpha = 0.3)
plt.savefig('test',dpi = 600)
plt.show()

在这里插入图片描述

在这里插入图片描述

饼状图的绘制

pie

matplotlib中,可以使用pie函数绘制饼图。饼图用于展示各类别的占比关系,适用于数据的相对比较。下面是使用pie函数绘制饼图的详细步骤和参数说明。

导入库:

import matplotlib.pyplot as plt

准备数据:

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

绘制饼图:

plt.pie(sizes, labels=labels)
plt.show()

绘制饼图时,主要使用了两个参数:

  • sizes:代表各类别的占比值,要求是一个一维数组或列表。
  • labels:代表各类别的标签,要求是一个与sizes长度相同的一维数组或列表。可选参数,默认值为None。

除此之外,还可以使用其他一些参数进行饼图的个性化设置,比如:

  • autopct:控制饼图中百分比的显示方式。可选参数,默认值为None。可以使用字符串格式控制显示,例如'%.1f%%'表示保留一位小数的百分比。
  • explode:控制各类别之间的间隔。可选参数,默认值为None。可以使用一维数组或列表来指定各类别的偏移量,例如[0, 0.1, 0, 0]表示第二个类别偏移0.1。
  • colors:控制各类别的颜色。可选参数,默认值为None。可以使用一维数组或列表来指定颜色,例如['red', 'blue', 'green', 'yellow']
  • startangle:控制饼图的起始角度,逆时针方向。可选参数,默认值为0。
  • shadow:控制是否显示阴影。可选参数,默认值为False。

下面是一个综合使用了上述参数的例子:

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
explode = [0, 0.1, 0, 0]
colors = ['red', 'blue', 'green', 'yellow']plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%.1f%%', startangle=90, shadow=True)
plt.axis('equal')
plt.show()

通过调整上述参数,可以根据具体需求绘制出个性化的饼图。

示例

【例7.9】某公司有A、B、C、D、E五种商品,每种商品占有的市场份额分别为15%、30%、30%、10%和15%,请利用Python的饼状图绘制上述数据的分布图。

关键技术:可以利用Python的matplotlib包中的pie函数绘制饼状图。

import pandas as pd
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D', 'E']
x = [15,30,30,10,15]
plt.pie(x, labels=labels)
plt.savefig('test',dpi=600)
plt.show ()

在这里插入图片描述

在这里插入图片描述

三、图形绘制的组合情况

多个折线图的组合绘制

示例

【例7.10】给定时间范围在2009年至2017年间两种商品的市场销售价格增长率数据集data1, data2。请利用Python的折线图将两种商品价格的增长率信息进行绘制,反映到图上。

关键技术:可以利用matplotlib包的plot函数进行多折线图的绘制。

data1 = np.random.randint(0,20,9)
data2 = np.random.randint(0,20,9)
year=[2009,2010,2011,2012,2013,2014,2015,2016,2017]
plt.plot(year,data1,lw=3,label='sales price increase rate')
plt.plot(year,data2,'r--',lw=3,label='construction costs increase rate')
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('Year')
plt.ylabel('Percentage')
plt.title('sales price/construction costs increase rates')

在这里插入图片描述

在这里插入图片描述

折线图和散点图的组合绘制

示例

【例7.11】给定某只股票从2021年12月31日到2022年1月11日的收盘价格,请利用Python的折线图和散点图组合图形式进行数据的绘制。

关键技术:可以利用Python的plot函数进行绘制。

data = np.random.randint(10,20,7)
date = ['12/31/2021','04/01/2022','05/01/2022','06/01/2022','07/01/2022','10/01/2022','11/01/2022']
plt.figure(figsize=(7,4))
plt.plot(date,data,'b',label='stock xxxxxx')
plt.plot(date,data,'ro')
plt.grid(True)
plt.legend(loc=0)
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.title('close price of stock xxxxx')

在这里插入图片描述

在这里插入图片描述

柱状图与折线图的组合绘制

示例

【例7.11】 【例7.12】已知给定的某股票在2021年12月14日至2021年12月28日的收盘价格和交易量,请利用Python绘制双坐标轴图,其中左坐标轴反映交易量,以柱状图表示;右坐标轴反映成交价格,以折线图表示。

close=[22.23,22.59,22.36,22.47,22.85,22.79,22.76,23.82,23.97,
5.38,25.5]
date=['12/14/2021','12/15/2021','12/16/2021','12/17/2021','12/21/2021','12/22/2021','12/23/2021','12/24/2021','12/25/2021','12/26/2021','12/21/2021']
vol=[34711261,35634241,40123423,39043212,45983023,429012,37584231,30029832,4039221,5023281,5598231]
fig,ax1=plt.subplots()
plt.bar(date,vol,width=0.3,label='交易量')
plt.legend(loc=1)
plt.xlabel('日 期')
plt.ylabel('交易量')
plt.title('stock xxxxxx')
plt.xticks(rotation = 60)
ax2=ax1.twinx()
plt.plot(close,'r',lw=2,label='收盘价')
plt.grid(True)
plt.legend(loc=8)
plt.ylabel('收盘价')
plt.savefig('test', dpi=600 , pad_inches='tight')

在这里插入图片描述

.png)


相关文章:

python数据分析——数据可视化(图形绘制基础)

数据可视化(图形绘制基础) 前言一、图形绘制基础Matplotlib简介使用过程sin函数示例 二、常用图形绘制折线图的绘制plot示例 散点图的绘制plot示例 柱状图的绘制bar示例 箱型图绘制plot.box示例 饼状图的绘制pie示例 三、图形绘制的组合情况多个折线图的…...

必背!!2024年软考中级——网络工程师考前冲刺几页纸

距离软考考试的时间越来越近了,趁着这两周赶紧准备起来 今天给大家整理了——软考网络工程师考前冲刺几页纸,都是核心重点,有PDF版,可打印下来,每天背一点。 计算机总线分类 ①总线的分类:数据总线、地址总…...

html+js光标操作

光标设置id为username的字段 window.addEventListener("load", function() {document.getElementById("username").focus(); }); 光标在username的时候点击enter回车键的时候光标移动到id为password的input里面 document.getElementById("username…...

Cannot read properties of undefined (reading ‘init‘)报错

出现这个报错是印象项目没有引echarts包 npm i echarts 下包 然后在main.js中引入 import echarts from echarts Vue.prototype.$echarts echarts 如果还不行 import * as echarts from echarts; 更改一下引入方式 ok了...

golang html/template模板中使用自定义函数/方法的2种方法总结

在golang的html/template模板库中我们如果希望在视图文件中调用自定义的函数 或者方法可以通过以下2种方法实现: 1. 调用自定义函数 可通过将自定义的函数加入到 template.FuncMap中,然后再使用 template.New("xxx.html").Funcs(funcMap)来在…...

浅析vue3自定义指令

vue3中可以像下面这样使用自定义指令。 这里我们只是定义了一个vFoucs变量,vue怎么知道这是一个指令呢? 这是因为约定大于配置,vue3中有这样一个约定(截图来自官方文档): 注意这里说的是驼峰命令&#x…...

后仿真中的关于延时问题(延迟类型选择和脉冲控制)

目录 通过前面的文章提到,从物理特性角度出发,仿真中存在两种延时:惯性延时和传输延时。那么,实际仿真电路过程中,我们究竟选择的哪种模式呢? 一 指定传输延迟类型 传输延迟类型不是默认的延迟类型。我们需要显示指定它。 1.1 module-path delay VCS 仿真中添加如下三…...

欧拉公式e^(ix)=(cos x+isin x)

啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是欧拉公式 在不同的学科中有着不同的含义和应用。在复变函数中,欧拉公式表述为e^(ix)(cos xisin x),其中e是自然对数的底,i是虚数单位&#x…...

Android 获取已安装应用、包名、应用名、版本号、版本名

1、相关代码 List<ApplicationInfo> installedApps getPackageManager().getInstalledApplications(0);for (ApplicationInfo appInfo : installedApps) {CharSequence getAppName getPackageManager().getApplicationLabel(appInfo);String appNamegetAppName.toStrin…...

2024数学建模深圳杯B题成品论文43页word+完整可视化结果图+可执行代码

【无水印word】2024深圳杯B题成品论文43页&#xff08;附带1-4小问完整py解题代码思路&#xff09;https://www.jdmm.cc/file/2710664 批量工件并行切割下料优化研究 摘 要 本研究针对批量工件并行切割下料问题展开了深入的探讨与分析。通过建立数学模型和运用优化算法&…...

达梦(DM) SQL查询及联合查询

达梦DM SQL查询及联合查询 查询结果排序多表联合查询 这里继续讲解DM数据库的Sql查询操作 查询结果排序 为提高查询结果可读性&#xff0c;我们可以对查询结果按照一定顺序排列&#xff0c;或者也可以将列名替换成数字&#xff0c;例如 ORDER BY 1 DESC&#xff0c;意思是按第…...

【重生之我在学Android】WorkManager (章一)

相关文章 【重生之我在学Android原生】ContentProvider(Java) 【重生之我在学Android原生】Media3 【重生之我在学Android】WorkManager &#xff08;章一&#xff09; 前言 官方文档 官方推荐 - 前台服务、后台服务都可以使用WorkManger来实现 案例 语言&#xff1a;JA…...

【强训笔记】day23

NO.1 思路&#xff1a;直接计算结果&#xff0c;先计算怪物可以抗几次攻击&#xff0c;再计算勇士受到的伤害&#xff0c;如果勇士的攻击力大于等于怪物的血量&#xff0c;那么就可以击杀无数只&#xff0c;如果勇士的血量正好是受到攻击的整数倍&#xff0c;那么击杀的怪物数…...

C语言-STM32:介绍PWM,并使用PWM实现呼吸灯

1、什么是PWM PWM&#xff0c;全称为Pulse Width Modulation&#xff0c;中文名为脉冲宽度调制。这是一种模拟控制技术&#xff0c;通过改变脉冲信号的宽度来表征一个连续变量的平均值&#xff0c;通常用于对模拟信号的数字化控制&#xff0c;特别是在功率转换和信号处理中非常…...

SpringBean详解

文章目录 概述Spring获取Bean的流程依赖注入bean的作用域Spring 中的 Bean 是线程安全的吗Spring如何处理线程并发问题bean 的自动装配和方式Resource和Autowired的区别bean的自动装配bean的生命周期BeanFactoryBeanFactory 常用的实现类有哪些BeanFactory与FactoryBean的不同A…...

hive获取这周五到下周四的区间,周一到周日的区间

-- 获取每个日期所在周期的开始和结束时间 SELECTcreated_date AS date_in_period,CASEWHEN date_format(created_date, u) < 5 THEN date_sub(created_date, cast(date_format(created_date, u) AS INT) 2)ELSE date_sub(created_date, cast(date_format(created_date, u)…...

Iterable与Iterator

Iterator public interface Iterator<E> {} terator是一个接口&#xff0c;它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下&#xff1a; forEachRemaining(Consumer<? super E> action)&#xff1a;为每个剩余元素执行给…...

免费Premiere模板,几何图形元素动画视频幻灯片模板素材下载

Premiere Pro模板&#xff0c;几何图形元素动画视频幻灯片模板 &#xff0c;组织良好&#xff0c;易于自定义。包括PDF教程。 项目特点&#xff1a; 使用Adobe Premiere Pro 2021及以上版本。 19201080全高清。 不需要插件。 包括帮助视频。 免费下载&#xff1a;https://prmu…...

数据结构与算法学习笔记九---循环队列的表示和实现(C++)

目录 前言 1.为什么要使用循环队列 2.队列的顺序存储方式的实现 1.定义 2.队列初始化 3.销毁 4.清空队列 5.队列是否为空 6.队列长度 7.队头 8.入队 9.出队 10.遍历队列 11.完整代码 3.参考资料 前言 这篇文章介绍循环队列的表示和用法。 1.为什么要使用循环队…...

Mysql获取当前时间

1、今天开始时间和结束时间 SELECT DATE_FORMAT(NOW(),’%Y-%m-%d 00:00:00’) AS ‘今天开始’; SELECT DATE_FORMAT(NOW(),’%Y-%m-%d 23:59:59’) AS ‘今天结束’;2、昨天的开始时间和结束时间 SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 DAY), ‘%Y-%m-%d 00:…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...