主頁 > 作業系統 > 使用ggplot2更改特定箱線圖的線寬

使用ggplot2更改特定箱線圖的線寬

2021-11-20 19:24:42 作業系統

我正在使用以下代碼生成箱線圖:

df %>%
  ggplot2::ggplot(ggplot2::aes(x = group, y = count, fill = batch))   
  ggplot2::geom_boxplot(ggplot2::aes(lwd = stroke))  
  ggplot2::scale_y_log10()   
  ggplot2::theme_bw()   
  ggplot2::theme(
    axis.text.x = ggplot2::element_text(angle = 90, hjust = 1),
    legend.position = "none"
  )   
  ggplot2::labs(title = nm_dds)

產生這個情節: 使用 ggplot2 更改特定箱線圖的線寬

我希望粗線不那么粗,但是調整 的值size_stroke沒有效果。我究竟做錯了什么?謝謝。

為了回應評論,這里是一個可重現的例子:


nm_dds <- "prefgF_becF_cvmodF_shF"

counts <- structure(c(0, 0, 2, 2906, 0, 0, 28, 0, 0, 0, 793, 5709, 4, 0, 
1356, 90, 2, 0, 13, 268, 658, 669, 118, 666, 0, 880, 0, 46, 247, 
100, 0, 0, 0, 0, 24, 671, 215, 6, 0, 72, 64, 544, 0, 227, 440, 
2, 0, 0, 0, 366, 0, 0, 0, 2681, 0, 0, 47, 0, 0, 1, 707, 5439, 
0, 0, 1246, 93, 0, 0, 23, 196, 547, 495, 113, 467, 0, 797, 0, 
46, 226, 60, 0, 0, 0, 0, 14, 688, 173, 1, 0, 47, 52, 502, 0, 
173, 390, 0, 0, 0, 0, 311, 0, 0, 0, 2284, 0, 0, 32, 0, 0, 0, 
727, 5191, 1, 7, 1094, 100, 1, 0, 8, 179, 541, 499, 117, 448, 
0, 691, 0, 49, 206, 78, 0, 0, 0, 0, 19, 585, 153, 6, 0, 87, 47, 
510, 0, 169, 375, 3, 0, 0, 0, 281, 0, 0, 2, 1945, 0, 0, 54, 0, 
0, 0, 633, 4791, 3, 2, 1340, 101, 0, 0, 7, 273, 519, 468, 112, 
857, 0, 717, 0, 81, 302, 88, 0, 0, 0, 0, 20, 659, 156, 7, 0, 
275, 66, 405, 0, 238, 330, 4, 0, 0, 0, 286, 0, 0, 0, 1912, 0, 
0, 59, 0, 0, 0, 557, 4293, 5, 1, 1127, 104, 2, 0, 0, 252, 459, 
481, 70, 724, 0, 642, 0, 77, 291, 81, 0, 0, 0, 0, 22, 551, 149, 
4, 0, 241, 61, 393, 0, 185, 310, 2, 0, 0, 0, 285, 0, 0, 1, 1892, 
0, 0, 39, 0, 0, 0, 497, 3656, 2, 3, 993, 94, 0, 0, 5, 217, 444, 
461, 95, 550, 0, 557, 0, 89, 226, 86, 0, 0, 0, 0, 19, 503, 144, 
0, 0, 304, 48, 380, 0, 188, 297, 4, 0, 0, 0, 256, 0, 0, 0, 1450, 
0, 0, 45, 0, 0, 0, 537, 3359, 0, 2, 2182, 107, 2, 0, 1, 338, 
472, 502, 82, 414, 0, 954, 0, 48, 335, 66, 0, 0, 0, 0, 40, 442, 
139, 0, 0, 585, 86, 336, 0, 257, 290, 1, 0, 0, 1, 326, 0, 0, 
0, 1598, 0, 0, 67, 0, 0, 0, 552, 3592, 0, 1, 1788, 92, 0, 0, 
5, 371, 444, 407, 88, 459, 0, 852, 0, 48, 307, 69, 0, 0, 0, 0, 
31, 422, 130, 1, 0, 731, 76, 338, 0, 264, 282, 1, 0, 0, 1, 284, 
0, 0, 1, 1839, 0, 0, 62, 0, 0, 0, 576, 4176, 0, 0, 1743, 113, 
1, 0, 0, 392, 483, 450, 87, 466, 0, 775, 0, 82, 357, 88, 0, 0, 
0, 0, 34, 531, 157, 0, 0, 1055, 85, 313, 0, 240, 357, 2, 0, 0, 
0, 322, 0, 0, 2, 2835, 0, 1, 92, 0, 0, 3, 1064, 7847, 1, 3, 2643, 
113, 2, 0, 56, 356, 650, 918, 135, 1243, 0, 1466, 0, 105, 359, 
81, 0, 0, 0, 0, 30, 905, 175, 3, 0, 102, 82, 675, 0, 344, 450, 
1, 0, 0, 4, 512, 0, 0, 5, 3036, 0, 0, 94, 0, 0, 2, 1056, 8830, 
3, 5, 2868, 108, 0, 0, 49, 365, 599, 900, 164, 1314, 0, 1483, 
1, 154, 334, 100, 0, 0, 0, 0, 35, 996, 206, 3, 0, 165, 75, 710, 
0, 363, 473, 3, 0, 0, 3, 541, 0, 0, 3, 2790, 0, 0, 83, 0, 0, 
1, 982, 8658, 5, 4, 2709, 104, 1, 0, 43, 341, 639, 755, 127, 
1272, 0, 1376, 0, 154, 331, 106, 0, 0, 0, 0, 24, 938, 227, 3, 
0, 137, 62, 744, 1, 346, 485, 1, 0, 0, 2, 467, 0, 0, 4, 2870, 
0, 0, 105, 0, 5, 2, 1576, 9938, 5, 4, 2515, 102, 1, 0, 72, 424, 
690, 930, 136, 1261, 0, 746, 0, 317, 430, 93, 0, 0, 0, 0, 48, 
993, 452, 18, 0, 44, 71, 517, 0, 414, 707, 0, 0, 0, 2, 509, 1, 
0, 2, 2640, 0, 0, 86, 0, 4, 0, 1440, 8869, 1, 4, 2363, 96, 0, 
0, 83, 375, 693, 1038, 114, 1158, 0, 740, 0, 286, 354, 99, 0, 
1, 0, 0, 63, 1003, 388, 12, 0, 26, 65, 485, 0, 375, 650, 1, 0, 
0, 5, 477, 0, 0, 1, 2816, 0, 0, 95, 0, 2, 2, 1485, 8370, 3, 6, 
2391, 104, 1, 0, 61, 377, 747, 1040, 102, 1066, 0, 808, 0, 281, 
352, 90, 0, 0, 0, 0, 50, 1017, 377, 17, 0, 30, 55, 514, 0, 399, 
716, 0, 0, 0, 0, 468, 0, 0, 16, 7482, 0, 0, 323, 0, 0, 2, 3859, 
30356, 9, 6, 11381, 512, 8, 0, 64, 1682, 3181, 3039, 664, 5347, 
0, 8045, 0, 545, 2237, 542, 0, 1, 0, 0, 193, 3346, 772, 60, 0, 
831, 533, 2611, 0, 1594, 2137, 3, 0, 0, 7, 2337, 0, 0, 4, 6041, 
0, 2, 270, 0, 0, 1, 3379, 24967, 5, 5, 9458, 438, 10, 0, 37, 
1171, 2601, 2768, 490, 4072, 0, 6498, 0, 300, 1849, 441, 0, 2, 
0, 0, 161, 2708, 658, 32, 0, 582, 415, 2090, 0, 1358, 1786, 4, 
0, 0, 10, 1845, 0, 0, 8, 6353, 0, 0, 314, 0, 0, 2, 3542, 28222, 
3, 3, 9963, 443, 3, 0, 46, 1392, 2955, 2983, 578, 4262, 0, 8051, 
0, 211, 2172, 554, 0, 4, 0, 0, 187, 2900, 673, 46, 0, 510, 514, 
2332, 0, 1536, 1962, 14, 0, 0, 8, 2048, 1, 0, 13, 5209, 0, 2, 
255, 0, 0, 1, 2982, 22262, 5, 11, 8089, 402, 5, 0, 45, 1131, 
2392, 2527, 440, 3491, 0, 6795, 0, 143, 1722, 397, 0, 2, 0, 0, 
158, 2409, 528, 39, 0, 459, 393, 1835, 0, 1221, 1708, 4, 0, 0, 
1, 1660, 0, 0, 8, 3784, 0, 3, 298, 0, 2, 6, 3234, 26388, 187, 
4, 8061, 433, 8, 0, 50, 1255, 3112, 2828, 454, 3934, 0, 2819, 
2, 555, 1587, 471, 0, 4, 0, 0, 175, 2510, 1307, 30, 0, 218, 294, 
1951, 0, 1443, 2315, 1, 0, 0, 6, 1617, 0, 0, 8, 4491, 0, 2, 262, 
0, 3, 3, 3308, 19851, 160, 9, 9911, 332, 5, 0, 43, 1130, 2899, 
3041, 483, 3595, 0, 3297, 3, 409, 1434, 593, 0, 5, 0, 0, 197, 
2771, 1300, 52, 0, 209, 262, 1727, 0, 1466, 2285, 5, 0, 0, 7, 
1956, 0, 0, 9, 6004, 0, 0, 328, 0, 4, 5, 3852, 24829, 139, 6, 
10430, 454, 11, 0, 80, 1507, 3449, 3524, 514, 4097, 0, 3882, 
2, 861, 1906, 566, 0, 0, 0, 0, 193, 3273, 1450, 40, 0, 470, 353, 
2364, 0, 1627, 2628, 3, 0, 0, 4, 2066, 1, 0, 10, 4016, 0, 1, 
217, 0, 3, 0, 2685, 16201, 137, 7, 7764, 315, 5, 0, 54, 989, 
2412, 2611, 377, 2972, 0, 2820, 1, 615, 1224, 398, 0, 2, 0, 0, 
146, 2421, 992, 42, 0, 400, 219, 1523, 0, 1131, 1909, 3, 0, 0, 
5, 1409), .Dim = c(50L, 23L), .Dimnames = list(c("Pydc3", "Ceacam5", 
"Mir93", "Idh1", "Gm10872", "C4bp-ps1", "Mrps33", "LOC432562", 
"March1", "Rbm44", "Npc1", "Rpl8", "Nckap1l", "H2-Eb1", "Ghitm", 
"Rabl5", "2700089I24Rik", "Vmn2r38", "Dpysl4", "Map2k3", "Tsc1", 
"Kbtbd2", "Slc5a6", "Erbb2", "Olfr1104", "Tmem65", "Gpr142", 
"Scube3", "B3gnt1", "A430033K04Rik", "Skint9", "4933411E08Rik", 
"Olfr424", "Mir139", "Pcdhga4", "Cdc123", "Dpy19l3", "Ticam2", 
"4930480K15Rik", "Igf1", "Slc41a3", "Uck2", "Guca1b", "Ppp6r2", 
"Rab22a", "Csf2rb2", "Vmn1r72", "Vmn1r95", "Zap70", "Uqcc"), 
c("IM_MR28_S28_L001", "IM_MR29_S29_L001", "IM_MR30_S30_L001", 
"IM_MR31_S31_L001", "IM_MR32_S32_L001", "IM_MR33_S33_L001", 
"IM_MR34_S34_L001", "IM_MR35_S35_L001", "IM_MR36_S36_L001", 
"IM_AR_36", "IM_AR_37", "IM_AR_38", "IM_AR_39", "IM_AR_40", 
"IM_AR_41", "IM_AR51_S1_L006", "IM_AR52_S2_L006", "IM_AR53_S3_L006", 
"IM_AR54_S4_L006", "IM_AR55_S5_L006", "IM_AR56_S6_L006", 
"IM_AR57_S7_L006", "IM_AR58_S8_L006")))

cd <- structure(list(batch = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L
), .Label = c("190701_K00242_0579_AH7GFLBBXY", "180810_K00242_0453_AHVJTJBBXX_IM_AR_RS21_180814_K00242_0456_AHW5LYBBXX_IM_AR_RS21_180817_K00242_0458_AHW57TBBXX_IM_AR_RS21", 
"180406_K00242_0385_AHTCCHBBXX_IM_AR_RS8_180412_K00242_0388_AHT7NYBBXX_IM_AR_RS8", 
"180814_K00242_0456_AHW5LYBBXX_IM_AR_RS21_180814_K00242_0456_AHW5LYBBXX_IM_AR_RS21_180817_K00242_0458_AHW57TBBXX_IM_AR_RS21", 
"190322_K00242_0534_AHYLVWBBXX_IM_AM_RS8_dT"), class = "factor"), 
time_label = c("D8", "D8", "D8", "D10", "D10", "D10", "D15", 
"D15", "D15", "D8", "D8", "D8", "D8", "D8", "D8", "D11", 
"D11", "D11", "D11", "D11", "D11", "D11", "D11"), time_value = c(8L, 
8L, 8L, 10L, 10L, 10L, 15L, 15L, 15L, 8L, 8L, 8L, 8L, 8L, 
8L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L), user = c("MR", 
"MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "AR", "AR", 
"AR", "AR", "AR", "AR", "AR", "AR", "AR", "AR", "AR", "AR", 
"AR", "AR"), treatment = structure(c(1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L), .Label = c("ctrl", "OE"), class = "factor"), 
group = structure(c(10L, 10L, 10L, 11L, 11L, 11L, 12L, 12L, 
12L, 17L, 17L, 17L, 18L, 18L, 18L, 19L, 19L, 19L, 19L, 20L, 
20L, 20L, 20L), .Label = c("M_2i_ctrl", "M_D0_ctrl", "M_D1_ctrl", 
"M_D2_ctrl", "M_D3_ctrl", "M_D4_ctrl", "M_D5_ctrl", "M_D6_ctrl", 
"M_D7_ctrl", "M_D8_ctrl", "M_D10_ctrl", "M_D15_ctrl", "A_D6_OE", 
"A_D6_ctrl", "A_D7_ctrl", "A_D7_OE", "A_D8_ctrl", "A_D8_OE", 
"A_D11_ctrl", "A_D11_OE"), class = "factor"), group_pca_label = c("M_D8_ctrl", 
NA, NA, "M_D10_ctrl", NA, NA, "M_D15_ctrl", NA, NA, "A_D8_ctrl", 
NA, NA, "A_D8_OE", NA, NA, "A_D11_ctrl", NA, NA, NA, "A_D11_OE", 
NA, NA, NA), condition = structure(c(10L, 10L, 10L, 11L, 
11L, 11L, 12L, 12L, 12L, 10L, 10L, 10L, 15L, 15L, 15L, 16L, 
16L, 16L, 16L, 17L, 17L, 17L, 17L), .Label = c("2i_ctrl", 
"D0_ctrl", "D1_ctrl", "D2_ctrl", "D3_ctrl", "D4_ctrl", "D5_ctrl", 
"D6_ctrl", "D7_ctrl", "D8_ctrl", "D10_ctrl", "D15_ctrl", 
"D6_OE", "D7_OE", "D8_OE", "D11_ctrl", "D11_OE"), class = "factor"), 
time = structure(c(10L, 10L, 10L, 11L, 11L, 11L, 13L, 13L, 
13L, 10L, 10L, 10L, 10L, 10L, 10L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L), .Label = c("2i", "D0", "D1", "D2", "D3", 
"D4", "D5", "D6", "D7", "D8", "D10", "D11", "D15"), class = "factor"), 
sample = structure(1:23, .Label = c("IM_MR28_S28_L001", "IM_MR29_S29_L001", 
"IM_MR30_S30_L001", "IM_MR31_S31_L001", "IM_MR32_S32_L001", 
"IM_MR33_S33_L001", "IM_MR34_S34_L001", "IM_MR35_S35_L001", 
"IM_MR36_S36_L001", "IM_AR_36", "IM_AR_37", "IM_AR_38", "IM_AR_39", 
"IM_AR_40", "IM_AR_41", "IM_AR51_S1_L006", "IM_AR52_S2_L006", 
"IM_AR53_S3_L006", "IM_AR54_S4_L006", "IM_AR55_S5_L006", 
"IM_AR56_S6_L006", "IM_AR57_S7_L006", "IM_AR58_S8_L006"), class = "factor")), row.names = c("IM_MR28_S28_L001", 
"IM_MR29_S29_L001", "IM_MR30_S30_L001", "IM_MR31_S31_L001", "IM_MR32_S32_L001", 
"IM_MR33_S33_L001", "IM_MR34_S34_L001", "IM_MR35_S35_L001", "IM_MR36_S36_L001", 
"IM_AR_36", "IM_AR_37", "IM_AR_38", "IM_AR_39", "IM_AR_40", "IM_AR_41", 
"IM_AR51_S1_L006", "IM_AR52_S2_L006", "IM_AR53_S3_L006", "IM_AR54_S4_L006", 
"IM_AR55_S5_L006", "IM_AR56_S6_L006", "IM_AR57_S7_L006", "IM_AR58_S8_L006"
), class = "data.frame")

long <- counts %>% 
  as.data.frame() %>% 
  tidyr::pivot_longer(
    cols = everything(), 
    names_to = "sample", 
    values_to = "count"
  ) %>% 
  dplyr::left_join(cd, by = "sample")
long$sample <- factor(long$sample, levels = levels(cd$sample))

size_stroke <- 2
outline_treatment <- "OE"

long %>% 
  dplyr::arrange(time_value, treatment) %>%
  dplyr::mutate(group = factor(group, levels = unique(group))) %>% 
  dplyr::mutate(stroke = dplyr::case_when(
    treatment == outline_treatment ~ size_stroke,
    TRUE ~ 0
  )) %>%
  ggplot2::ggplot(ggplot2::aes(x = group, y = count, fill = batch))   
  ggplot2::geom_boxplot(ggplot2::aes(lwd = stroke))  
  ggplot2::scale_y_log10(limits = c(0.1, 1E10))   
  ggplot2::theme_bw()   
  ggplot2::theme(
    axis.text.x = ggplot2::element_text(angle = 90, hjust = 1),
    legend.position = "none"
  )   
  ggplot2::labs(title = nm_dds)

uj5u.com熱心網友回復:

您可以通過其中一項scale_size_*()功能設定大小的值如果沒有cd環境中的其他一些命名物件,您的 reprex 就無法正常作業,所以我不確定什么最適合您;但是,我可以演示如何使用mtcars.

library(ggplot2)

p <- mtcars %>%
  ggplot(aes(x=factor(carb), y=disp))  
  geom_boxplot(aes(size=factor(carb)))
p

使用 ggplot2 更改特定箱線圖的線寬

要手動設定每個值的大小,您可以使用scale_size_manual()并提供一個values=引數作為向量,然后將其映射到因子的所有級別。如果你發送了一個命名向量,你可以明確地將值分配給每個級別 - 否則未命名向量將根據級別順序映射。

p   scale_size_manual(values = c(1,3,1,1.2,3,4))

使用 ggplot2 更改特定箱線圖的線寬

應用于 OP 資料集

多虧了 OP,我們現在有了一個可以使用的資料集:)。如果將上述方法直接應用于 OP 的資料集,則會遇到問題。我將size=stroke在 內映射geom_boxplot,只是為了方便使用相同的美學名稱(不是lwd)。將發生在繪圖代碼之前的資料整理分開會很有幫助,以確保我們將其發送到繪圖之前了解我們正在處理的內容

d <- long %>% 
  dplyr::arrange(time_value, treatment) %>%
  dplyr::mutate(group = factor(group, levels = unique(group))) %>% 
  dplyr::mutate(stroke = dplyr::case_when(
    treatment == outline_treatment ~ size_stroke,
    TRUE ~ 0
  ))

當您檢查d$strokeusing 中的值時,unique(d$stroke)我們只發現02存在的從理論上講,這意味著只有兩個級別,但是如果scale_size_manual(values = c(0.5, 1.5))在使用 時對代碼進行重d,則會收到以下錯誤訊息:

Error: Continuous value supplied to discrete scale
In addition: Warning messages:
1: Transformation introduced infinite values in continuous y-axis 
2: Removed 405 rows containing non-finite values (stat_boxplot). 

我們可以忽略警告(它們處理 y 比例變換和一些NA值,但不適用于手頭的問題)。由于d$stroke僅包含0or 的2,因此它是資料框中的連續值列。因此,大小比例映射該值就好像它是連續的一樣。我們可以使用scale_size_continuous, 代替,但由于我只想有 2 個離散值,您可以通過首先轉換d$stroke為一個因子(強制它是離散的),然后scale_size_manual()在繪圖代碼的末尾使用來解決這個問題生成固定圖的完整代碼如下。更改values=引數中的數字scale_size_manual()以將外觀更改為您想要的尺寸:

# data wranglin'
d <- long %>% 
  dplyr::arrange(time_value, treatment) %>%
  dplyr::mutate(group = factor(group, levels = unique(group))) %>% 
  dplyr::mutate(stroke = dplyr::case_when(
    treatment == outline_treatment ~ size_stroke,
    TRUE ~ 0
  ))
d$stroke <- factor(d$stroke)   # need to convert to a factor if using scale_size_manual()

# plot code
d %>%
  ggplot2::ggplot(ggplot2::aes(x = group, y = count, fill = batch))   
  ggplot2::geom_boxplot(ggplot2::aes(size = stroke))  
  ggplot2::scale_y_log10(limits = c(0.1, 1E10))   
  ggplot2::theme_bw()   
  ggplot2::theme(
    axis.text.x = ggplot2::element_text(angle = 90, hjust = 1),
    legend.position = 'none'
  )   
  ggplot2::labs(title = nm_dds)  
  scale_size_manual(values=c(0.5, 1.5))

使用 ggplot2 更改特定箱線圖的線寬

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361038.html

標籤:r ggplot2

上一篇:帶有正值和負值的條形圖

下一篇:無法在簡單邏輯回歸上繪制p值

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more