Qt扫盲-Bar柱状图理论

news2024/11/28 14:36:36

Bar柱状图理论

  • 一、QAbstractBarSeries
    • 1. 常用设置
    • 2. 管理 BarSet
  • 二、QBarSerie 和 QHorizontalBarSeries
    • 1. 垂直柱状图
    • 2. 水平柱状图
  • 二、QPercentBarSeries 和 QHorizontalPercentBarSeries
    • 1. 垂直比例图
    • 2. 水平比例图
  • 三、QStackedBarSeries 和 QHorizontalStackedBarSeries
    • 1. 垂直堆栈图
    • 2. 水平堆栈图

一、QAbstractBarSeries

QAbstractBarSeries类是所有bar类的抽象父类。其实也就是 QBarSerieQPercentBarSeriesQStackedBarSeries 的父类,以及对应的水平柱状图 QHorizontalBarSeriesQHorizontalPercentBarSeriesQHorizontalStackedBarSeries

在柱状图中,柱状序列(QAbstractBarSeries的子类)被定义为每个类别包含一个数据值的柱状集(QBarSerie)。

其实也就是说 QAbstractBarSeries 来管理着 QBarSet 这个具体显示一个柱状图里面的多个集合。其实可以理解,至少有一个 QBarSet 存在才能显示出图表里面的内容。

柱状的位置由类别指定,高度由数据值指定。包含多个柱状集的柱状系列将属于同一类别的柱状组合在一起。柱状图显示的方式由创建柱状图的类QAbstractBarSeries的子类决定。

如果使用QValueAxis而不是QBarCategoryAxis作为主柱状轴,柱状将围绕类别的索引值进行分组。这个分组的依据就是按照那个QList的索引顺序分类的。

1. 常用设置

QAbstractBarSeries 管理着整个柱状图的 一个 Label 属性,这个其实就和WPS 里面画图的那个标签一样,这个可以设置他的位置,这个标签的旋转角度,以及显示格式,显示精度等等,注意就是设置这些属性后,一定要设置标签可见,不然的话标签就设置是失败的。

  • isLabelsVisible() const
  • labelsAngle() const
  • labelsFormat() const
  • labelsPosition() const
  • labelsPrecision() const

在这里插入图片描述

2. 管理 BarSet

这里就是管理 QBarSet 的工具类了,虽然QAbstractBarSeries没有给我们提供控制哪一个QBarSet 的显示隐藏,但是我们可以利用下面的 这些管理类,自己用一个QList容器来管理那些 QBarSet 需要放在 QAbstractBarSeries 里面,QList 的索引其实刚好和 QAbstractBarSeries 也一致。就和坐标轴的能对上啦。

  • append(QBarSet *set)
  • append(QList<QBarSet *> sets)
  • barSets() const
  • barWidth() const
  • clear()
  • count() const
  • insert(int index, QBarSet *set)
  • remove(QBarSet *set)
  • take(QBarSet *set)

基本上因为基类相同,后面写的代码基本上是一致的。

二、QBarSerie 和 QHorizontalBarSeries

QBarSerie 其实就是垂直的柱状图,QHorizontalBarSeries 其实就是 水平柱状图。

具体的功能其实 QAbstractBarSeries 已经完全包括啦。

具体的效果如下:
在这里插入图片描述在这里插入图片描述

1. 垂直柱状图

barset在所有barchart中都以相同的方式使用。为了说明各种柱状图之间的差异,我们在示例中使用相同的数据。柱状图可视化的数据是由QBarSet实例定义的。在这里,我们创建了集合并向其中添加数据。这里使用<<操作符添加数据。另外,也可以使用append方法。

QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建了这个序列,并将barsets添加到其中。巴塞家的所有权归剧集所有。该系列将数据从集合分组到类别。每个集合的第一个值按第一类分组,第二个值按第二类分组,以此类推。

QBarSeries *series = new QBarSeries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里,我们创建chart对象并将序列添加到其中。我们用setTitle设置图表的标题,然后调用setAnimationOptions(QChart::SeriesAnimations)来打开系列动画。

QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple barchart example");
chart->setAnimationOptions(QChart::SeriesAnimations);

为了在坐标轴上显示类别,我们需要为此创建一个QBarCategoryAxis。在这里,我们创建了一个类别轴,其中包含一个类别列表,并将其设置为与底部对齐,作为x轴,并将其附加到序列上。图表拥有坐标轴的所有权。对于y轴,我们使用值轴,与左侧对齐。

QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
QBarCategoryAxis *axisX = new QBarCategoryAxis();
axisX->append(categories);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);

QValueAxis *axisY = new QValueAxis();
axisY->setRange(0,15);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还将图例的对齐方式设置为Qt::AlignBottom,从而将图例放置到图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到视图中。我们还打开了chartView的反走样功能。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

图表已经准备好了。我们将图表设置为窗口的中心部件。我们还设置了图表窗口的大小并显示它。

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();

2. 水平柱状图

在所有柱状图中使用条形集的方式相同。为了说明各种柱状图之间的差异,我们在所有示例中使用相同的数据。柱状图可视化的数据由QBarSet实例定义。在这里,我们创建了集合并向其中添加数据。这里使用<<操作符添加数据。另外,也可以使用append方法。

QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建了这个序列,并将条形集附加到它。巴塞家的所有权归剧集所有。该系列将数据从集合分组到类别。每个集合的第一个值归为第一类;第二类中的第二个值,以此类推。

QHorizontalBarSeries *series = new QHorizontalBarSeries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里,我们创建chart对象并将序列添加到其中。我们用setTitle设置图表的标题,然后调用setAnimationOptions(QChart::SeriesAnimations)来打开动画。

     QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple horizontal barchart example");
chart->setAnimationOptions(QChart::SeriesAnimations);

为了在坐标轴上显示类别,我们需要为此创建一个QBarCategoryAxis。在这里,我们创建了一个包含类别列表的类别轴,并将其设置为左侧对齐,充当y轴,并将其附加到序列上。图表拥有坐标轴的所有权。对于x轴,我们使用一个与底部对齐的值轴。

QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
QBarCategoryAxis *axisY = new QBarCategoryAxis();
axisY->append(categories);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
QValueAxis *axisX = new QValueAxis();
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
axisX->applyNiceNumbers();

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还将图例的对齐方式设置为Qt::AlignBottom,从而将图例放置到图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到视图中。我们还打开了chartView的反走样功能。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

图表已经准备好了。我们将图表设置为窗口的中心部件。我们还设置了图表窗口的大小并显示它。

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();

二、QPercentBarSeries 和 QHorizontalPercentBarSeries

QPercentBarSeries 其实就是一个比例图,就是每一个所占的比例,当然啦,最好是吧 Label 给设置好,不然看不出来啥东西,就只知道是一个大概的比例,QHorizontalPercentBarSeries其实就是 水平比例柱状图,就是第二个图。
在这里插入图片描述在这里插入图片描述

1. 垂直比例图

barset在所有barchart中都以相同的方式使用。为了说明各种条形图之间的差异,我们在所有示例中使用相同的数据。条形图可视化的数据由QBarSet实例定义。在这里,我们创建了集合并向其中添加数据。这里使用<<操作符添加数据。另外,也可以使用append方法。

QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建了这个序列,并将barsets添加到其中。巴塞家的所有权归剧集所有。该系列将数据从集合分组到类别。每个集合的第一个值归为第一类,第二个值归为第二类,以此类推。

QPercentBarSeries *series = new QPercentBarSeries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里,我们创建chart对象并将序列添加到其中。我们用setTitle设置图表的标题,然后调用setAnimationOptions(QChart::SeriesAnimations)来打开系列动画。

QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple percentbarchart example");
chart->setAnimationOptions(QChart::SeriesAnimations);

要在一个轴上显示类别,我们需要首先创建一个QBarCategoryAxis。在这里,我们创建了一个包含类别列表的类别轴,并将其添加到与底部对齐的图表中,充当x轴。图表拥有坐标轴的所有权。对于y轴,我们使用值轴,与左侧对齐。

QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
QBarCategoryAxis *axisX = new QBarCategoryAxis();
axisX->append(categories);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
QValueAxis *axisY = new QValueAxis();
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还将图例的对齐方式设置为Qt::AlignBottom,从而将图例放置在图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到视图中。我们还打开了chartView的反走样功能。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

图表已经准备好了。我们将图表设置为窗口的中心部件。我们还设置了图表窗口的大小并显示它。

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();

2. 水平比例图

barset在所有barchart中都以相同的方式使用。为了说明各种柱状图之间的差异,我们在示例中使用相同的数据。柱状图可视化的数据是由QBarSet实例定义的。在这里,我们创建了集合并向其中添加数据。这里使用<<操作符添加数据。另外,也可以使用append方法。

QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建了这个序列,并将条形集附加到它。巴塞家的所有权归剧集所有。该系列将数据从集合分组到类别。每个集合的第一个值归为第一类,第二个值归为第二类,以此类推。

QHorizontalPercentBarSeries *series = new QHorizontalPercentBarSeries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里,我们创建chart对象并将序列添加到其中。我们用setTitle设置图表的标题,然后调用setAnimationOptions(QChart::SeriesAnimations)来打开系列动画。

QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple horizontal percent barchart example");
chart->setAnimationOptions(QChart::SeriesAnimations);

要在一个轴上显示类别,我们需要首先创建一个QBarCategoryAxis。在这里,我们创建了一个包含类别列表的类别轴,并将其添加到左侧的图表中,充当y轴。图表拥有坐标轴的所有权。对于x轴,我们使用一个与底部对齐的值轴。

QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
QBarCategoryAxis *axisY = new QBarCategoryAxis();
axisY->append(categories);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
QValueAxis *axisX = new QValueAxis();
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还将图例的对齐方式设置为Qt::AlignBottom,从而将图例放置在图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到视图中。我们还打开了chartView的反走样功能。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

图表已经准备好了。我们将图表设置为窗口的中心部件。我们还设置了图表窗口的大小并显示它。

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();

三、QStackedBarSeries 和 QHorizontalStackedBarSeries

这个和 QPercentBarSeries 其实基本上是一样的,只不过是 QStackedBarSeries 不是比例而已,这个QStackedBarSeries 是没有比例而已。也是有水平和垂直的形式的。

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

1. 垂直堆栈图

barset在所有barchart中都以相同的方式使用。为了说明各种条形图之间的差异,我们在所有示例中使用相同的数据。条形图可视化的数据是由QBarSet实例定义的。在这里,我们创建了集合并向其中添加数据。这里使用<<操作符添加数据。另外,也可以使用append方法。

QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建了这个序列,并将barsets添加到其中。巴塞家的所有权归剧集所有。该系列将数据从集合分组到类别。每个集合的第一个值归为第一类,第二个值归为第二类,以此类推。

QStackedBarSeries *series = new QStackedBarSeries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里,我们创建chart对象并将序列添加到其中。我们用setTitle设置图表的标题,然后调用setAnimationOptions(QChart::SeriesAnimations)来打开动画。

QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple stackedbarchart example");
chart->setAnimationOptions(QChart::SeriesAnimations);

要在一个轴上显示类别,我们需要首先创建一个QBarCategoryAxis。在这里,我们创建了一个包含类别列表的类别轴,并将其添加到对齐到底部的图表中,充当x轴。图表拥有坐标轴的所有权。对于y轴,我们使用值轴,与左侧对齐。

QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
QBarCategoryAxis *axisX = new QBarCategoryAxis();
axisX->append(categories);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
QValueAxis *axisY = new QValueAxis();
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还将图例的对齐方式设置为Qt::AlignBottom,从而将图例放置到图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到视图中。我们还打开了chartView的反走样功能。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

图表已经准备好了。我们将图表设置为窗口的中心部件。我们还设置了图表窗口的大小并显示它。

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();

2. 水平堆栈图

在所有条形图中使用条形集的方式相同。为了说明各种条形图之间的差异,我们在所有示例中使用相同的数据。barchart可视化的数据是由QBarSet实例定义的。在这里,我们创建了集合并向其中添加数据。这里使用<<操作符添加数据。另外,也可以使用append方法。

QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建了这个序列,并将条形集附加到它。该系列拥有酒吧集合的所有权。该系列将数据从集合分组到类别。每个集合的第一个值归为第一类,第二个值归为第二类,以此类推。

QHorizontalStackedBarSeries *series = new QHorizontalStackedBarSeries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里,我们创建chart对象并将序列添加到其中。我们用setTitle设置图表的标题,然后调用setAnimationOptions(QChart::SeriesAnimations)来打开动画。

QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple horizontal stacked barchart example");
chart->setAnimationOptions(QChart::SeriesAnimations);

要在一个轴上显示类别,我们需要首先创建一个QBarCategoryAxis。在这里,我们创建了一个包含类别列表的类别轴,并将其添加到左侧的图表中,充当y轴。图表拥有坐标轴的所有权。对于x轴,我们使用一个与底部对齐的值轴。

QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
QBarCategoryAxis *axisY = new QBarCategoryAxis();
axisY->append(categories);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
QValueAxis *axisX = new QValueAxis();
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还将图例的对齐方式设置为Qt::AlignBottom,从而将图例放置到图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到视图中。我们还打开了chartView的反走样功能。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

图表已经准备好了。我们将图表设置为窗口的中心部件。我们还设置了图表窗口的大小并显示它。

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(420, 300);
window.show();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

忠诚之源:如何获得铁粉?

文章目录 一、铁粉二、如何吸引和留住铁粉的想法2.1 了解你的目标铁粉2.2 提供有价值的内容2.3 建立良好的关系2.4 持续优化和创新 三、具体可采用的一些方法3.1 提供优质内容3.2 社交媒体互动3.3 创建独特的品牌形象3.4 提供特殊待遇和奖励3.5 参与社区和活动3.6 持续互动和更…

如何把视频语音转换成文字,分享给大家几个免费的方法!

在日常工作和学习中&#xff0c;有时需要将视频中的语音转录为文字&#xff0c;以便整理成文稿或进行其他用途。手动打字效率低下且耗时费力&#xff0c;那么如何快速将语音转换为文字呢&#xff1f;下面介绍几种简单高效的方法&#xff0c;其中之一是使用记灵在线工具。 方法…

PHP的流程控制语句

一.流程控制语句 1.if语句 PHP的if语句格式如下 if(表达式) 语句; 如果表达式的值为真&#xff0c;那么久顺序执行语句&#xff1b;否则&#xff0c;就会跳过该条语句&#xff0c;再往下执行。如果要执行的语句不指一条则用{}&#xff0c;{}被称为语句组&#xff0c;格式如…

Immer编写简洁的更新state逻辑

react官网推荐库use-immer&#xff1a;https://www.npmjs.com/package/use-immer 引入&#xff1a;import { useImmer } from "use-immer"; 优点&#xff1a; 简化代码: 只需要关注需要变动的部分&#xff0c;而 immer 本身将在后台处理其余部分。学习成本和替换代…

双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用

查看原文>>>双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用 目录 第一讲、DNDC模型介绍 第二讲、DNDC初步操作 第三讲、遥感和GIS基础 第四讲、DNDC气象数据 第五讲、DNDC土地数据 第六讲、DNDC土壤数据 …

【C语言】算法学习·Dijkstra算法详解

目录 Dijkstra算法设计 Dijkstra算法简介 Dijkstra算法的基本思想 Dijkstra贪心策略 完美图解 伪代码详解 完整代码 算法解析及优化拓展 ​使用优先队列的完整代码 Dijkstra算法设计 Dijkstra算法简介 Dijkstra算法是解决**单源最短路径**问题的**贪心算法** …

2021年国赛高教杯数学建模C题生产企业原材料的订购与运输解题全过程文档及程序

2021年国赛高教杯数学建模 C题 生产企业原材料的订购与运输 原题再现 某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料,总体可分为 A&#xff0c;B&#xff0c;C 三种类型。该企业每年按 48 周安排生产&#xff0c;需要提前制定 24 周的原材料订购和…

如何在 javascript 中按属性值查找数组中的对象

文章目录 使用 find() 方法按属性值在数组中查找对象使用 filter() 方法按属性值查找数组中的对象使用 JavaScript for 循环按属性值查找数组中的对象使用 JavaScript for...in 循环按属性值查找数组中的对象 数组指的是值的有序列表&#xff0c;每个值称为由索引指定的元素。 …

这所西安的985专硕爆冷,保护一志愿,过线即上岸!

本期为大家整理热门院校“西北工业大学”的择校分析&#xff0c;这个择校分析专题会为大家结合&#xff1a;初试复试占比、复试录取规则&#xff08;是否公平&#xff09;、往年录取录取名单、招生人数、分数线、专业课难度等进行分析。希望能够帮到大家! –所有数据来源于研招…

Plot、Scatter、Subplot函数用法

目 录 一、Plot()函数 二、Scatter()函数 三、Subplot()函数 一、Plot()函数 格式&#xff1a;matplotlib.pyplot.plot(x,y,format_string.**kwargs) 说明&#xff1a; x:x轴数据&#xff0c;列表或数组&#xff0c;可选(注&#xff1a;当绘制多条曲线时&#xff0c;不能省…

IT 系统巡检必须关注的指标总结

1. 系统整体架构 以下内容作为基本 IT 系统信息被首先调查记录&#xff0c;供分析参考使用。 ● 网络设备配置 ---设备型号, IOS 版本, 模块型号和数量,用途 ● 存储系统配置 ---设备型号, IO 带宽, Cache 容量&#xff0c;磁盘数量&#xff0c;接入模式&#xff0c;存储容…

Go项目配置管理工具---Viper

目录 Viper概述前言功能viper配置优先级 从Viper中获取值读取配置文件注册和使用别名 把值写入Viper设置默认值使用Set方法设置值把配置信息写入配置文件从io.Reader中读取配置信息到viper 监控Viper文件 Viper概述 前言 对于现代应用程序&#xff0c;尤其大中型的项目来说&a…

【MySQL】Mycat

文章目录 什么是Mycat为什么要用Mycatmycat能干什么各数据库中间件对比Mycat原理数据库中间件逻辑库逻辑表分片表分片规则全局表ER表非分片表分片节点节点主机mycat安装mycat核心配置schema.xmlserver.xmlrule.xml加密明文密码&#xff08;可选&#xff09; MyCat读写分离垂直拆…

OpenCV中的图像处理3.11(10) OpenCV中的图像变换

目录 3.11 OpenCV中的图像变换3.11.1 傅里叶变换目标理论Numpy中的傅里叶变换OpenCV中的傅立叶变换DFT的性能优化为什么Laplacian是一个高通滤波器&#xff1f;其他资源 翻译及二次校对&#xff1a;cvtutorials.com 编辑者&#xff1a;廿瓶鲸&#xff08;和鲸社区Siby团队成员&…

2.3 YARN伪分布式集群搭建

任务目的 重点掌握 YARN 集群的相关配置学会启动和关闭 YARN 集群的两种方式能够使用 jps 命令查看进程的启动情况能够通过 UI 查看 YARN 集群的运行状态任务清单 任务1:YARN 集群主要配置文件讲解任务2:YARN 集群测试任务步骤 任务1:YARN 集群主要配置文件讲解 1.1 配置环…

基于多尺度图神经网络的流场预测,实现精度与速度的平衡

项目简介 本项目来源于飞桨AI for Science共创计划的论文复现赛题&#xff0c;复现论文为《AMGNET: multi-scale graph neural networks for flow field prediction》。该论文主要采用图神经网络&#xff0c;因为在计算流体力学中计算域被网格离散化&#xff0c;这与图结构天然…

将PDF1页分割为4页

运行效果 原始PDF 分割后PDF 一、python代码&#xff08;用的是python3.9.0版本&#xff09; import os import tempfile from pdf2image import convert_from_path from PIL import Image from PyPDF2 import PdfReader, PdfWriterdef split_pdf_page(pdf_path, output_path…

4G开发板-安卓手机开发套件-MTK主板开发板定制

开发板是一种用于嵌入式系统开发的电路板&#xff0c;它包含了各种硬件组件&#xff0c;如中央处理器、存储器、输入设备、输出设备、数据通路/总线以及外部资源接口等。为了满足特定的开发需求&#xff0c;嵌入式系统开发者通常会根据项目要求来定制开发板&#xff0c;当然用户…

2023年前端面试高频考点ES6

目录 ES6新增 数据类型 基本数据类型 引用数据类型 Null&#xff0c;NaN&#xff0c;Undefined toString&#xff0c;valueOf &#xff0c;&#xff0c;Object.is() 判断数据类型&#xff1a;typeof运算符&#xff0c;instance of运算符&#xff0c;isPrototypeOf() 方…

数据分析第11课pandas时间序列(上+下)-第12期15,16课

数据分析思维:有逻辑性, 课前练习1 各大平台相继推出和迭代付费会员策略,如优酷会员、京东PLUS会员、网易云音乐黑胶VIP等,通过提供丰富的权益吸引用户成为付 费会员,提升用户黏性和忠诚度。请围绕付费会员回答以下问题: 以网易云音乐黑胶VIP为例,运营同学希望推出活动…