AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-18143306

Melanie Baker's questions

Martin Hope
Melanie Baker
Asked: 2024-08-01 22:14:57 +0800 CST

Adicionar item de rótulo à legenda semelhante a geom_label_repel()

  • 6

Eu tenho um gráfico de riqueza de espécies que possui nove linhas. Rotulei cada linha no final usando geom_label_repel() com o número quadrático apropriado. Quero adicionar à minha legenda uma caixa de etiqueta preta semelhante com um número 1 ou um hash (#) com 'Quadrat Number' escrito ao lado.

Este é meu enredo atual:

insira a descrição da imagem aqui

Esta é uma versão editada em PowerPoint que gostaria que a legenda se parecesse com:

insira a descrição da imagem aqui

Subconjunto de dados:

dados para gráfico (índice):

structure(c("function (..., list = character(), package = NULL, lib.loc = NULL, ", 
"    verbose = getOption(\"verbose\"), envir = .GlobalEnv, overwrite = TRUE) ", 
"{", "    fileExt <- function(x) {", "        db <- grepl(\"\\\\.[^.]+\\\\.(gz|bz2|xz)$\", x)", 
"        ans <- sub(\".*\\\\.\", \"\", x)"), dim = c(6L, 1L), dimnames = list(
    c("1", "2", "3", "4", "5", "6"), ""), class = "noquote")

rótulos para gráfico (labels_df):

structure(list(Quadrat = structure(1:9, levels = c("1", "2", 
"3", "4", "5", "6", "7", "8", "9"), class = "factor"), Year = c(2024L, 
2024L, 2024L, 2024L, 2024L, 2024L, 2024L, 2024L, 2024L), ID = c("1_24", 
"2_24", "3_24", "4_24", "5_24", "6_24", "7_24", "8_24", "9_24"
), Source = c("Beaver", "Beaver", "Beaver", "Beaver", "Beaver", 
"Beaver", "SSSI", "SSSI", "SSSI"), specNum = c(20L, 21L, 19L, 
6L, 2L, 8L, 15L, 29L, 16L), simpson = c(0.95, 0.952380952380952, 
0.947368421052632, 0.833333333333333, 0.5, 0.875, 0.933333333333333, 
0.96551724137931, 0.9375), shannon = c(2.99573227355399, 3.04452243772342, 
2.94443897916644, 1.79175946922805, 0.693147180559945, 2.07944154167984, 
2.70805020110221, 3.36729582998647, 2.77258872223978), H = c(2.99573227355399, 
3.04452243772342, 2.94443897916644, 1.79175946922805, 0.693147180559945, 
2.07944154167984, 2.70805020110221, 3.36729582998647, 2.77258872223978
), fisher = c(4294967306, 4294967306.5, 4294967305.5, 1073741869.66667, 
268435505.000009, 2147483652, 4294967303.5, 4294967310.5, 4294967304
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-9L))

Código para plotagem

library(ggplot2)            # for plottin graphs
library(ggrepel)            # for geom_label_repel()
library(pals)               # for lines colour scale

specPlot <- ggplot(index, aes(x=Year, y=specNum, group=Quadrat, color=Quadrat, linetype=Source)) +
  geom_line() +
  geom_point() +
  labs(x='Year', y='Species Richness') +
  scale_colour_manual(values = unname(kovesi.isoluminant_cgo_70_c39(n=9)), guide = "none") +
  scale_linetype_manual(name = NULL, values = c('Beaver' = 'solid', 'SSSI' = 'dashed')) +
  geom_label_repel(data=labels_df,aes(label=Quadrat),
                   direction='y',
                   segment.colour='black',
                   xlim=c(2024,2025),
                   na.rm = TRUE,
                   max.overlaps=100,
                   show.legend = FALSE) +
  theme_classic() +
  theme(legend.position='top',
        legend.direction = 'horizontal',
        text = element_text(size = 14, family = 'Calibri Light')) +
  coord_cartesian(clip='off')
  • 1 respostas
  • 26 Views
Martin Hope
Melanie Baker
Asked: 2023-10-03 19:56:04 +0800 CST

Extraia o ajuste do modelo de geom_smooth

  • 10

Eu tenho um ggplot onde usei a função geom_smooth(method='gam'). Fiquei me perguntando se existe uma maneira de extrair parâmetros do modelo, como coeficientes e desvios explicados.

Semelhante ao summary() da saída de mgcv::gam():

> summary(gam)

Family: gaussian 
Link function: identity 

Formula:
mAODscale ~ s(numDate, bs = "cr")

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.041461   0.002198   18.86   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
             edf Ref.df     F p-value    
s(numDate) 8.731  8.979 74.54  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.379   Deviance explained = 38.4%
GCV = 0.0053239  Scale est. = 0.0052765  n = 1092

Dados

test <- structure(list(numDate = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 
5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 
11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 
16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 
22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 
27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 
32, 33, 33, 33, 34), mAODscale = c(0.0388813764134284, 0.0461877433707656, 
0.096886995092774, 0.0371438764134382, 0.0394419100374392, 0.0893994950927635, 
0.0413855430800965, 0.0418085767040992, 0.101328661759439, 0.0428313764134316, 
0.0403835767041016, 0.0978328284261067, 0.0444813764134295, 0.0566460767040979, 
0.136811995092771, 0.0404647097467716, 0.0461127433707702, 0.104611995092768, 
0.0391105430800991, 0.0388294100374367, 0.0883828284261057, 0.0377355430801032, 
0.0334335767040983, 0.0744786617594428, 0.0346647097467638, 0.0316752433707705, 
0.0691911617594343, 0.0365730430800966, 0.0329127433707725, 0.0721203284261094, 
0.0337897097467703, 0.0271960767041008, 0.0568703284261005, 0.0321188764134348, 
0.0226835767040967, 0.0467286617594311, 0.0389522097467676, 0.0317169100374315, 
0.0724911617594444, 0.0374147097467699, 0.0301335767041024, 0.066378661759444, 
0.0359688764134347, 0.0245710767041061, 0.0492828284261009, 0.0340355430801083, 
0.0208835767040938, 0.0401828284261114, 0.033193876413435, 0.0170627433707722, 
0.0363119950927739, 0.0320272097467722, 0.0147294100374324, 0.0298161617594417, 
0.0305563764134433, 0.0123752433707693, 0.0200744950927714, 0.0294522097467649, 
0.00966691003743847, 0.0144453284261061, 0.029439709746768, 0.00845441003743019, 
0.0127494950927769, 0.029218876413438, 0.00767941003742578, 0.0118203284260971, 
0.0283438764134303, 0.00608774337077023, 0.00807032842610056, 
0.027393235387791, 0.00498582029383954, 0.00612513611841337, 
0.0261313764134314, 0.004612743370771, 0.00541616175944171, 0.0260813764134298, 
0.00472524337077118, 0.00372449509276862, 0.0256522097467666, 
0.00535024337077061, 0.00356616175943714, 0.0250313764134376, 
0.0161044100374284, 0.00060366175944182, 0.0241147097467689, 
0.025246076704093, -0.00540050490722876, 0.0233022097467739, 
0.022454410037426, -0.00630883824055672, 0.0208772097467715, 
0.0152252433707645, -0.00819217157389573, 0.0194897097467646, 
-0.00307475662923196, -0.00896300490722979, 0.0178938764134386, 
0.00323774337076088, -0.00836717157389444, 0.0153022097467641
)), row.names = c(NA, -100L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x000002cacef91f60>)

Codifique e plote com geom_smooth()

Nota: isso está usando apenas um subconjunto do meu conjunto de dados.

p <- ggplot(test50, aes(x=numDate, y=mAODscale)) +
  geom_point() +
  stat_smooth(method='gam',
              formula=y~s(x,bs="cs",fx=TRUE,k=10))

insira a descrição da imagem aqui

  • 1 respostas
  • 38 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve