0

0

修改Google Chart图表:日期格式、反转图表与数值缩放

聖光之護

聖光之護

发布时间:2025-09-18 16:58:22

|

456人浏览过

|

来源于php中文网

原创

修改google chart图表:日期格式、反转图表与数值缩放

本文旨在帮助开发者修改Google Chart图表,使其更具可读性和实用性。主要内容包括:自定义日期显示格式,实现图表反转,以及对图表数据进行数值缩放。通过本文,你将掌握如何调整Google Chart的hAxis和vAxis属性,以及如何处理数据源,从而满足特定的图表展示需求。

Google Charts 提供了丰富的配置选项,允许开发者根据需求定制图表。以下将针对日期格式修改、图表反转和数值缩放三个方面进行详细讲解。

1. 修改日期显示格式

Google Charts 默认的日期显示格式可能不符合所有需求。为了使其更具可读性,你需要自定义日期格式。这通常涉及到修改数据源和配置 hAxis 属性。

数据源处理:

首先,确保你的日期数据以 JavaScript Date 对象的形式传递给 Google Charts。如果你的日期数据是以字符串形式存储的(例如,YYYY-MM-DD HH:MM:SS),你需要先将其转换为 Date 对象。

// 假设 dateString 是从数据库中获取的日期字符串
function formatDate(dateString) {
  return new Date(dateString);
}

// 在从数据库获取数据后,对日期进行转换
<?php
  $chartQuery = "SELECT * FROM ZiMeteo ORDER BY ID DESC LIMIT 144";
  $chartQueryRecords = mysqli_query($connect, $chartQuery);
  while ($row = mysqli_fetch_assoc($chartQueryRecords)) {
    // 将数据库中的日期字符串转换为 JavaScript Date 对象
    $dateString = $row['Date'];
    echo "['". "<script>document.write(formatDate('" . $dateString . "'))</script>" ."',".$row['TmpExt'].",".$row['Vents'].",".$row['HumExt']."],";
  }
?>

配置 hAxis:

然后,使用 hAxis.format 属性来指定日期格式。常用的日期格式包括 yyyy-MM-dd、MM/dd/yy、HH:mm 等。

var options = {
  title: 'Evolution sur 24 h',
  legend: { position: 'bottom' },
  hAxis: {
    format: 'HH:mm', // 设置日期格式为小时:分钟
    textStyle: {
      color: 'white'
    }
  },
  vAxis: {
    textStyle: {
      color: 'white'
    }
  }
};

常用日期格式:

格式 描述 示例
yyyy-MM-dd 年-月-日 2023-10-27
MM/dd/yy 月/日/年 10/27/23
HH:mm:ss 时:分:秒 14:30:00
MMM d, y 月份缩写 日, 年 Oct 27, 2023

2. 反转图表

反转图表意味着将横轴(hAxis)的方向颠倒。这可以通过设置 hAxis.direction 属性为 -1 来实现。

AI小聚
AI小聚

一站式多功能AIGC创作平台,支持AI绘画、AI视频、AI聊天、AI音乐

下载
var options = {
  title: 'Evolution sur 24 h',
  legend: { position: 'bottom' },
  hAxis: {
    direction: -1, // 反转横轴方向
    textStyle: {
      color: 'white'
    }
  },
  vAxis: {
    textStyle: {
      color: 'white'
    }
  }
};

设置 direction: -1 后,图表中的数据点将从右向左排列,而不是默认的从左向右排列。

3. 数值缩放

对图表数据进行数值缩放,通常是为了更好地展示数据,或者将数据转换为更易理解的单位。例如,将风速数据除以 10。

数据源处理:

在将数据传递给 Google Charts 之前,对数据进行处理。这可以在 PHP 代码中完成。

<?php
  $chartQuery = "SELECT * FROM ZiMeteo ORDER BY ID DESC LIMIT 144";
  $chartQueryRecords = mysqli_query($connect, $chartQuery);
  while ($row = mysqli_fetch_assoc($chartQueryRecords)) {
    // 将风速数据除以 10
    $vents = $row['Vents'] / 10;
    echo "['".$row['Date']."',".$row['TmpExt'].",".$vents.",".$row['HumExt']."],";
  }
?>

或者,在 JavaScript 代码中处理:

// 假设 dataArray 是从数据库获取的原始数据
var newDataArray = dataArray.map(function(item) {
  // 将风速数据除以 10
  var vents = item[2] / 10;
  return [item[0], item[1], vents, item[3]];
});

var data = google.visualization.arrayToDataTable(newDataArray);

注意事项:

  • 确保数据类型正确。数值缩放操作仅适用于数值类型的数据。
  • 在缩放数据后,考虑更新图表的 vAxis.title 属性,以反映新的单位。例如,如果将风速除以 10,可以将 vAxis.title 设置为 "风速 (m/s / 10)"。

完整示例代码

<script type="text/javascript">
  google.charts.load('current', {'packages':['corechart']});
  google.charts.setOnLoadCallback(graph24h);

  function graph24h() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'Température', 'Vent Moyen', 'Humidité'],
      <?php
           $chartQuery = "SELECT * FROM ZiMeteo ORDER BY ID DESC LIMIT 144";
           $chartQueryRecords = mysqli_query($connect, $chartQuery);
                while ($row = mysqli_fetch_assoc($chartQueryRecords)) {
                     // 缩放风速数据
                     $vents = $row['Vents'] / 10;
                     // 将数据库中的日期字符串转换为 JavaScript Date 对象
                     $dateString = $row['Date'];
                     echo "['". "<script>document.write(formatDate('" . $dateString . "'))</script>" ."',".$row['TmpExt'].",".$vents.",".$row['HumExt']."],";
                }
       ?>
    ]);

    var options = {
      title: 'Evolution sur 24 h',
      legend: { position: 'bottom' },
      hAxis: {
        format: 'HH:mm', // 设置日期格式
        direction: -1,  // 反转图表
        textStyle: {
          color: 'white'
        }
      },
      vAxis: {
        title: '风速 (m/s / 10)', // 更新 vAxis 标题
        textStyle: {
          color: 'white'
        }
      }
    };

    var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

    chart.draw(data, options);
  }

  function formatDate(dateString) {
    return new Date(dateString);
  }
</script>

<div id="curve_chart" style="width: 900px; height: 500px"></div>

总结

通过本文,你学习了如何修改 Google Chart 图表的日期显示格式、反转图表方向以及缩放数值数据。这些技巧可以帮助你创建更具可读性和信息量的图表,从而更好地展示数据。记住,灵活运用 Google Charts 的配置选项,可以满足各种不同的图表展示需求。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

338

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

225

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

138

2026.02.12

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

887

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

462

2024.06.27

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

760

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

221

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1567

2023.10.24

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 848人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号