6月11日,每日20行。

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>

namespace Ui {
class MyWidget;
}

class MyWidget : public QWidget
{
    Q_OBJECT

public:
    explicit MyWidget(QWidget *parent = 0);
    ~MyWidget();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void on_pushButton_3_clicked();

    void on_pushButton_4_clicked();

    void on_pushButton_5_clicked();

private:
    Ui::MyWidget *ui;
};

#endif // MYWIDGET_H
#include "mywidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();

    return a.exec();
}
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
}

MyWidget::~MyWidget()
{
    delete ui;
}

void MyWidget::on_pushButton_clicked()
{
    QColorDialog dialog(Qt::red, this);                  // 创建对象
    dialog.setOption(QColorDialog::ShowAlphaChannel);    // 显示 alpha 选项
    dialog.exec();                                       // 以模态方式运行对话框
    QColor color = dialog.currentColor();                // 获取当前颜色
    qDebug() << "color:" << color;                       // 输出颜色信息
}

void MyWidget::on_pushButton_2_clicked()
{
    QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("文件对话框"), "C:", tr("图片文件( * png * jpg)"));
    qDebug() << "fileNames:" << fileNames;
}

void MyWidget::on_pushButton_3_clicked()
{
    // ok 用于标记是否单击了 OK 按钮
    bool ok;
    QFont font = QFontDialog::getFont(&ok, this);
    // 如果单击 OK 按钮,那么让"字体对话框"按钮使用新字体
    // 如果单击 Cancel 按钮,那么输出信息
    if(ok) ui->pushButton_3->setFont(font);
    else qDebug() << tr("没有选择字体!");
}

void MyWidget::on_pushButton_4_clicked()
{
    bool ok;
    // 获取字符串
    QString string = QInputDialog::getText(this, tr("输入字符串对话框"), tr("请输入用户名:"), QLineEdit::Normal, tr("admin"), &ok);
    if(ok) qDebug() << "string:" << string;
    // 获取整数
    int value1 = QInputDialog::getInt(this, tr("输入整数对话框"), tr("请输入-1000到1000之间的数值"), 100, -1000, 1000, 10, &ok);
    if(ok) qDebug() << "value1:" << value1;
    // 获取浮点数
    double value2 = QInputDialog::getDouble(this, tr("输入浮点数对话框"), tr("请输入-1000到1000之间的数值"), 0.00, -1000, 1000, 2, &ok);
    if(ok) qDebug() << "value2:" << value2;
    QStringList items;
    items << tr("条目1") << tr("条目2");
    // 获取条目
    QString item = QInputDialog::getItem(this, tr("输入条目对话框"), tr("请选择或输入下一个条目"), items, 0, true, &ok);
    if(ok) qDebug() << "item:" << item;
}

void MyWidget::on_pushButton_5_clicked()
{
    // 问题对话框
    int ret1 = QMessageBox::question(this, tr("问题对话框"), tr("你了解 Qt 吗?"), QMessageBox::Yes, QMessageBox::No);
    if(ret1 == QMessageBox::Yes) qDebug() << tr("问题!");
    // 提示对话框
    int ret2 = QMessageBox::information(this, tr("提示对话框"), tr("这是 Qt 书籍!"), QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok) qDebug() << tr("提示!");
    // 警告对话框
    int ret3 = QMessageBox::warning(this, tr("警告对话框"), tr("不能提前结束!"), QMessageBox::Abort);
    if(ret3 == QMessageBox::Abort) qDebug() << tr("警告!");
    // 错误对话框
    int ret4 = QMessageBox::critical(this, tr("错误对话框"), tr("发现一个严重错误!现在要关闭所有文件!"), QMessageBox::YesAll);
    if(ret4 == QMessageBox::YesAll) qDebug() << tr("错误!");
    // 关于对话框
    int ret5 = QMessageBox::question(this, tr("关于对话框"), tr("yafeilinux 致力于 Qt 及 Qt Creator 的普及工作!"), QMessageBox::Yes, QMessageBox::No);
}

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

好的,根据您提供的数据,我们可以采用季节性分解模型(Seasonal Decomposition)来进建模、检验和预测。这种模型可以将时间序列分解为趋势、季节性和随机成分,从而更好地理解和预测时间序列。 首先,我们导入数据并进可视化: ```r # 导入数据 data <- c(1045.23, 1022.14, 1044.28, 1050.99, 1134.74, 660.32, 634.23, 1056.39, 1054.17, 1044.54, 1034.95, 1129.95, 640.15, 662.11, 1033.71, 1033.54, 1051.95, 1064.62, 1138.92, 697.66, 622.54) # 可视化数据 plot(data, type = "l", xlab = "Time", ylab = "Passenger Flow") ``` 我们可以看到,数据呈现出明显的季节性和趋势性。 接下来,我们使用`stl()`函数进季节性分解: ```r # 进季节性分解 decomp <- stl(data, s.window = "periodic") # 可视化分解结果 plot(decomp) ``` 我们可以看到,分解结果中包括原始数据、趋势、季节性和随机成分四个部分。其中,季节性成分呈现出明显的周期性变化,而趋势性成分则呈现出逐渐上升的趋势。 接下来,我们可以对趋势性成分进拟合,以进一步理解时间序列的趋势性走向: ```r # 拟合趋势性成分 trend <- ts(decomp$time.series[, "trend"], frequency = 7) # 可视化趋势性成分 plot(trend, type = "l", xlab = "Time", ylab = "Trend") ``` 我们可以看到,趋势性成分的拟合结果显示出了较为明显的上升趋势。 接下来,我们可以对季节性成分进检验,以进一步了解季节性成分对时间序列的影响: ```r # 进季节性成分检验 seasonal <- ts(decomp$time.series[, "seasonal"], frequency = 7) acf(seasonal, lag.max = 7*2) ``` 我们可以看到,季节性成分对时间序列的影响呈现出明显的周期性,与数据的季节性变化相符。 最后,我们可以使用季节性分解模型进预测,以预测未来一段时间内的客流量: ```r # 进未来14天的预测 forecast <- forecast(decomp, h = 14) # 可视化预测结果 plot(forecast) ``` 我们可以看到,预测结果显示出了未来两周内客流量的趋势性和季节性变化,可以为地铁的运营和调度提供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值