使用ChatGPT写代码靠谱吗?

原文链接:使用ChatGPT写代码靠谱吗?

写在前面

对于ChatGPT从我们“惊讶”到现在已经快一年多了,但是,对于个人来说,使用还是比较少的。更确切的来说,也许有些同学是没有使用过。

ChatGPT功能确实比较强大,但对于我们使用者来说,可能感觉自己使用时候并没有有直观的感受到他“所谓的强大”。对于个人来说,对于ChatGPT只是用来“搜索引擎”一样的功能。有时候,自己不会的内容,也会让它来搜索。

那么用ChatGPT来写绘图代码,或是分析代码可以吗??

对于个人来说只能说是:仁者见仁智者见智。

使用ChatGPT写一个热图绘制的ShinyApp

提问

这样的提问,也是参考了Chen CJ老师。其实,也可以不用设定他的人设,直接提问,给出的答案基本是一致的。

给出需求

给出我们自己提问的问题,以及要求。要求,尽可能详细。

ChatGPT给出回答

我们分别使用ChatGPT 3.5ChatGPT 4.0进行提问,给出的答案基本一致。

ChatGPT 3.5回答代码

# 安装所需包
if (!require("shiny")) {
  install.packages("shiny")
}
if (!require("ggplot2")) {
  install.packages("ggplot2")
}
if (!require("pheatmap")) {
  install.packages("pheatmap")
}

library(shiny)
library(ggplot2)
library(pheatmap)

# 创建一个简单的UI界面
ui <- fluidPage(
  titlePanel("Interactive Heatmap"),
  sidebarLayout(
    sidebarPanel(
      fileInput("file", "Choose a file"),
      selectInput("color_palette", "Select color palette", choices = c("viridis", "RdBu", "Blues")),
      selectInput("scale", "Choose data scaling method", choices = c("none", "row", "column", "both")),
      selectInput("output_format", "Choose output format", choices = c("pdf", "jpg", "png")),
      actionButton("draw_heatmap", "Draw Heatmap")
    ),
    mainPanel(
      plotOutput("heatmap_plot")
    )
  )
)

# 创建服务器端逻辑
server <- function(input, output) {
  data <- reactive({
    req(input$file)
    read.csv(input$file$datapath)
  })
  
  output$heatmap_plot <- renderPlot({
    req(input$draw_heatmap)
    
    pheatmap(data(), color = input$color_palette, scale = input$scale, filename = paste0("heatmap.", input$output_format))
  })
}

# 启动应用
shinyApp(ui = ui, server = server)

ChatGPT 4.0回答代码

packages <- c("shiny", "ggplot2", "heatmaply", "shinyWidgets", "colourpicker", "shinyjs")
if (length(setdiff(packages, rownames(installed.packages()))) > 0) {
  install.packages(setdiff(packages, rownames(installed.packages())))
}

library(shiny)
library(ggplot2)
library(heatmaply)
library(shinyWidgets)
library(colourpicker)
library(shinyjs)

# 定义 UI
ui <- fluidPage(

  # 添加所需的UI组件
  titlePanel("Interactive Heatmap"),
  sidebarLayout(
    sidebarPanel(
      fileInput('file1', 'Please choose a CSV file',
                accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv')),
      tags$hr(),
      checkboxInput('header', 'Header', TRUE),
      radioButtons('sep', 'Separator', c(Comma=',', Semicolon=';', Tab='\t'), ','),
      radioButtons('quote', 'Quote', c(None='', "Double Quote"='"', "Single Quote"="'"), '"'),
      colourInput("col","Heatmap Color", value = "red"),
      pickerInput("norm", "Normalization Method", choices = c("None", "Z-score", "Min-Max")),
      checkboxInput("cluster", "Cluster", FALSE),
      checkboxInput("sig", "Significance", FALSE),
      pickerInput("out", "Output Format", choices = c("PNG", "JPEG", "PDF")),
      actionButton("plotButton","Plot")
    ),

    mainPanel(
      plotlyOutput("heatmap")
    )
  )
)

# 定义服务器逻辑
server <- function(input, output) {
  data <- reactive({
    file1 <- input$file1
    if(is.null(file1)){return()} 
    read.csv(file=file1$datapath, sep=input$sep, header = input$header, stringsAsFactors = FALSE)
  })

  observeEvent(input$plotButton, {
    output$heatmap <- renderPlotly({
      if(input$norm == "Z-score"){
        data_norm <- scale(data())
      } else if(input$norm == "Min-Max"){
        data_norm <- (data() - min(data())) / (max(data()) - min(data()))
      } else {
        data_norm <- data()
      }
      heatmaply(data_norm, colors = colorRampPalette(input$col), k_row = ifelse(input$cluster, NA, 1), k_col = ifelse(input$cluster, NA, 1), labRow = ifelse(input$sig, rownames(data()), NULL))
    })
  })
}

# 运行应用
shinyApp(ui = ui, server = server)

代码运行后结果

给出的交互网页,也是一个比较简易的。使用好几个要求并没有写上去,也许是我们的提问不科学,未能识别。

结束

ChatGPT固然方便,但是,给出的答案还是需要我们自己来甄别。目前的ChatGPT还算可以,简单的代码可以正常运行,比刚开始时候提高了一些。但是,始终我们只能作为一个参考。

若我们的分享对你有用,希望您可以点赞+收藏+转发,这是对小杜最大的支持。

往期文章:

1. 复现SCI文章系列专栏

2. 《生信知识库订阅须知》,同步更新,易于搜索与管理。

3. 最全WGCNA教程(替换数据即可出全部结果与图形)

  • WGCNA分析 | 全流程分析代码 | 代码一

  • WGCNA分析 | 全流程分析代码 | 代码二

  • WGCNA分析 | 全流程代码分享 | 代码三

  • WGCNA分析 | 全流程分析代码 | 代码四

  • WGCNA分析 | 全流程分析代码 | 代码五(最新版本)


4. 精美图形绘制教程

  • 精美图形绘制教程

5. 转录组分析教程

转录组上游分析教程[零基础]

一个转录组上游分析流程 | Hisat2-Stringtie

小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第三十天| 回溯篇总结

文章目录 前言一、组合问题二、切割问题三、子集问题四、排列问题五、性能分析总结 前言 回溯法就是暴力搜索&#xff0c;并不是什么高效的算法&#xff0c;最多再剪枝一下。 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合 排列问题&#xff1a;N个数按一定规则全…

快速上手vercel,免费部署上线你的前端项目,3分钟学会

在你还不了解 vercel的时候&#xff0c;我已经部署了三个自己的项目了&#xff0c;都是免费&#xff0c;而且实时同步github并更新&#xff0c;当然也可以你自己本地直接部署到vercel&#xff0c;不经过github&#xff0c;今天三分钟教会你&#xff0c;但是注意&#xff1a;国内…

花28块,薅自己的羊毛!我错在哪里?

这些年返利类型的网站也是参差不齐&#xff0c;他就发现了赚钱的大门 而这个人就是我的大姨&#xff0c;他的喜好和别人不一样&#xff0c; 特别爱薅羊毛&#xff0c;但他都不知道我也被他拉在那个群里了&#xff01; 她对自媒体颇感兴趣&#xff0c;并创建了一个团体的小群…

Vue+SpringBoot打造大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

从0开始回顾Mysql --- MySQL初体验

大白话从0开始回顾MySQL&#xff0c;去除了一些繁琐的操作的演示以及内容&#xff0c;如MySQL安装等&#xff0c;本篇文章适合复习MySQL语法&#xff0c;学习MySQL语句&#xff0c;对MySQL不太熟练的同学&#xff0c;希望对大家有一些帮助。 MySQL初体验 首先&#xff0c;我将…

C语言----冒泡排序进阶

冒泡排序大家应该到写过吧。但大家可能知道到的冒泡排序有两种方法。而我呢&#xff0c;最近学习到了另外一种方法&#xff0c;现在知道三种方法了。所以想与大家分享一下。但是缺点是第三种是第二种的自实现版。第一种就是我们平常写的普通冒泡排序。第二种就是qsort。第三种就…

剑指offer刷题记录Day2 07.数组中重复的数字 ---> 11.旋转数组的最小数字

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、重建二叉树①代码实现&#xff08;带注释&am…

MQL5学习之简单移动平均线MA的编写

昨天还是有点高估自己了&#xff0c;MACD相对较难一点&#xff0c;改学MA的编写&#xff0c;首先明确MA的计算&#xff0c;假如有4个值&#xff0c;p[1&#xff0c;2&#xff0c; 3&#xff0c; 4], period3, 则v[0]p[0], v[1]p[1],v[2](p[0]p[1]p[2])/32, v[3](v[2]*3p[3]-p…

rust多个mod文件引用和文件夹mod使用注意事项

如果mod文件都在同一级目录&#xff0c;则直接使用就可以&#xff0c;因为rust文件都是一个隐藏的mod&#xff0c;但是如果mod文件在另外一个目录下面&#xff0c;就需要在目录下面声明一个mod.rs文件&#xff0c;这样才能将那个目录识别为一个mod&#xff0c;可以在mod.rs里面…

分布式事务详解-高频面试题

分布式事务都有哪些 其实说到分布式事务 我们不得不提事务的分类 事务可以分为本地事务&#xff0c;和分布式事务&#xff0c; 本地事务就是单体系统下基于数据库的ACID来实现的事务&#xff0c;而分布式事务是指在分布式环境下保证多个系统事务一致性的问题 而分布式事务 其…

初阶数据结构之---栈和队列(C语言)

引言 在顺序表和链表那篇博客中提到过&#xff0c;栈和队列也属于线性表 线性表&#xff1a; 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。线性表在逻辑上是线性结构&#xff0c;也就是说是连…

Java项目:33 基于Java Web的网上拍卖系统(含源码数据库+文档免费送)

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 主要功能包括&#xff1a; 1.前台模块 &#xff08;1&#xff09;普通用户登录/注册。 &#xff08;2&#xff09;分类查看商品(普通商品与促销商品…

集成2.5G/5G/10G高速率网络变压器的RJ45网口连接器产品特点介绍

Hqst华轩盛(石门盈盛)电子导读&#xff1a;集成2.5G/5G/10G高速率网络变压器的RJ45网口连接器产品特点介绍&#xff1a; 第一、 高速率&#xff1a;支持高达2.5Gbps、5Gbps和10Gbps的传输速率&#xff0c;能够满足高带宽的网络应用需求。 第二、 集成2.5G/5G/10G高速率网…

【C++】set、multiset与map、multimap的使用

目录 一、关联式容器二、键值对三、树形结构的关联式容器3.1 set3.1.1 模板参数列表3.1.2 构造3.1.3 迭代器3.1.4 容量3.1.5 修改操作 3.2 multiset3.3 map3.3.1 模板参数列表3.3.2 构造3.3.3 迭代器3.3.4 容量3.3.5 修改操作3.3.6 operator[] 3.4 multimap 一、关联式容器 谈…

Vue开发实例(五)修改项目入口页面布局

修改项目入口 一、创建新入口二、分析代码&#xff0c;修改入口三、搭建项目主页面布局1、Container 布局容器介绍2、创建布局3、布局器铺满屏幕4、创建Header页面5、加入Aside、Main和Footer模块 一、创建新入口 创建新的入口&#xff0c;取消原来的HelloWorld入口 参考代码…

测试需求平台9-Table 组件应用产品列表优化

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版&#xff0c;拥抱Vue3.0将前端框架替换成字节最新开源的arco.design&#xff0c;其中约60%重构和20%新增内容&#xff0c;定位为从 0-1手把手实现简单的测试平台开发教程&#xff0c;内容将囊括基础、扩展和实战&a…

文件操作和IO(2):Java中操作文件

目录 一、File的属性 二、File的构造方法 三、File的方法 四、代码示例 1、getName&#xff0c;getParent&#xff0c;getPath方法 2、getAbsolutePath&#xff0c;getCanonicalPath方法 3、exists&#xff0c;isDirectory&#xff0c;createNewFile方法 4、createNewF…

【04】C语言括号匹配问题

欢迎来到土土的博客~&#x1f973;&#x1f973;&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1f4a5; 所属专栏&#xff1a;C语言系列函数实现 题目描述&#xff1a; 给定一个只包括 ‘(’&#xff0c;‘)’&#xf…

金融业被网络攻击了怎么办,如何治理和风险控制?

近年来&#xff0c;网络罪犯的人数和复杂程度都在增加&#xff0c;网络罪犯的目标锁定变得更具策略性&#xff0c;更加专注于最大效率和获利。随着有关全球网络犯罪的数据持续涌入&#xff0c;可以看出金融服务企业已然成为头号锁定目标。虽然金融服务企业在网络安全人员、工具…

python 基础知识点(蓝桥杯python科目个人复习计划57)

今日复习计划&#xff1a;做题 例题1&#xff1a;笨笨的机器人 问题描述&#xff1a; 肖恩有一个机器人&#xff0c;他能根据输入的指令移动相应的距离。但是这个机器人很笨&#xff0c;他永远分不清往左边还是往右边移动。肖恩也知道这一点&#xff0c;所以他设定这个机器人…