fishing_gear_survey

Author

qigr001

一、原始数据处理

1. 加载软件包

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

2. 读取数据

# 读取数据
raw_data <- read.csv("C:/R_data/survey/survey_data_1012.csv",encoding = "UTF-8")

3. 变量重命名

# 变量重命名
full_data <- raw_data |>
  rename(
    survey_No. = "序号",
    survey_date = "提交答卷时间",
    survey_time_used = "所用时间",
    survey_source = "来源",
    survey_source_details = "来源详情",
    survey_ip = "来自IP",
    ship_name = "X1.渔船船名.",
    phone_numeber = "X2.请您留下手机号码.便于数据校正..",
    ship_length = "X3.渔船长度.米..",
    gear_type = "X4.渔具类型",
    gear_name = "X5.渔具名称",
    gillnet_head_line_length = "X6.每片刺网渔具上纲长度.米.",
    beam_length = "X7.网具桁杆长度.米.",
    frame_perimeter = "X8.网具框架.网口.周长.米.",
    surrouding_net_head_line_length = "X9.围网网具上纲长度.米.",
    gear_head_line1_length = "X10.网具上纲长度.米.",
    gear_head_line2_length = "X11.网具上纲长度.米.",
    gear_side_line1_length = "X12.网具一边纲长度.米.",
    gear_foot_line_length = "X13.网具沉子纲长度.米.",
    No._of_hooks_per_line = "X14.每根钓线钓钩数量.个.",
    line_length_per_unit = "X15.每筐.盘.排.钓钩主线长度",
    pots_length = "X16.单个地笼长度.米.",
    gillnet_height = "X17.每片刺网渔具作业时网具高度",
    surrouding_net_height = "X18.围网网衣最高部位拉直高度.米.",
    surrouding_net_codend_length = "X19.有囊围网网囊长度.米.",
    stow_net_height = "X20.张网渔具侧纲.竖杆竖杆.米.",
    gear_foot_length = "X21.网具下纲长度.米.",
    gear_side_line2_length = "X22.网具另一边纲长度.米.",
    gear_length = "X23.网衣拉直长度.米.",
    gillnet_used_quantity = "X24.作业时刺网网具使用数量.片.",
    trawl_net_used_quantity = "X25.作业时使用拖网渔具数量.顶.",
    stow_net_used_quantity1 = "X26.作业时张网渔具数量.顶.",
    stow_net_used_quantity2 = "X27.作业时张网渔具使用数量.顶.",
    hooks_used_quantity_per_unit = "X28.钓具钓线.钓钩.钓鱼人.的数量",
    hooks_used_quantity = "X29.单船使用多少筐.盘.排.钓钩",
    pots_used_quantity = "X30.笼壶渔具使用的数量.个.",
    codend_quantity_per_unit = "X31.单顶网具网囊数量.个.",
    hook_quantiy_per_unit = "X32.每筐.盘.排.钓钩数量多少个",
    gear_weight_per_codend = "X33.网具单个网囊重量.kg.公斤.",
    gear_weight_per_unit = "X34.单顶网具网衣重量.kg.公斤.不含沉浮子.",
    surrounding_net_weight = "X35.围网网具重量.kg.公斤.",
    stow_net_weight = "X36.单顶张网网具重量.kg.公斤.",
    gillnet_mesh_minsize = "X37.刺网最小网目尺寸大小",
    trawl_mesh_minsize = "X38.拖网最小网目尺寸大小",
    surrounding_net_mesh_size = "X39.围网最小网目尺寸大小",
    stow_net_mesh_minsize1 = "X40.张网网具的最小网目尺寸大小",
    stow_net_mesh_minsize2 = "X41.单片张网最小网目尺寸大小",
    mesh_minsize = "X42.网具最小网目尺寸大小",
    mesh_minsize_aspiration = "X43.您认为网具最小网目尺寸多大合适..公分.",
    mesh_maxsize = "X44.网具的最大网目尺寸.公分.",
    gillnet_expend_quantity = "X45.平均每年更新.消耗.耗损.网具总片数",
    condend_expend = "X46.平均每年消耗网囊数量.个.",
    trawl_expend_quantity = "X47.平均每年更新.消耗.损耗.拖网网具数量",
    gear_expend_years = "X48.平均每顶网具使用年限.年.",
    stow_net_expend_quantity = "X49.平均每年更新.消耗.损耗.张网渔具数量.顶.",
    pots_expend_quantity = "X50.平均每年更新.消耗.损耗.笼壶渔具数量.个.",
    hooks_expend_quantity = "X51.平均每年新购钓钩数量.个.",
    light_total_watt = "X52.渔船集鱼灯总功率.千瓦.",
    flush_whether = "X53.捕捞时是否使用水冲",
    bump_whether = "X54.捕捞时是否使用泵吸"
    )

4. 数据类型转换

# 数据类型转换
full_data$survey_date <- as.Date(full_data$survey_date, format = "%Y/%m/%d %H:%M:%S")

full_data$ship_length <- as.numeric(full_data$ship_length)
Warning: NAs introduced by coercion
# 刺网
# 上纲长度
full_data$gillnet_head_line_length <- factor(full_data$gillnet_head_line_length, levels = c("20米以下", "20-30米", "30-40米", "40-50米", "50-60米", "60-70米", "70-80米", "80-100米", "100米以上"))
# 网口高度
full_data$gillnet_height <- factor(full_data$gillnet_height, levels = c("2米以下", "2-4米", "4-6米", "6-8米", "8-10米", "10-12米", "12-15米", "15米以上"))
# 使用数量
full_data$gillnet_used_quantity <- factor(full_data$gillnet_used_quantity, levels = c("100片以下", "100-200片","200-400片","400-600片", "600-800片", "800-1000片", "1000-1200片", "1200-1400片", "1400-1600片", "1600-1800片", "1800-2000片", "2000片以上"))
# 消耗数量
full_data$gillnet_expend_quantity <- factor(full_data$gillnet_expend_quantity, levels = c("500片以下", "500-1000片","1000-2000片","2000-3000片", "3000-4000片", "4000-5000片", "5000-6000片", "6000-8000片", "8000-10000片", "10000片以上"))
# 最小网目尺寸
full_data$gillnet_mesh_minsize <- factor(full_data$gillnet_mesh_minsize, levels = c("3公分以下", "3-4公分", "4-5公分", "5-7公分", "7-9公分", "9-11公分", "11-15公分", "15公分以上"))

# 拖网
# 桁杆长度
full_data$beam_length <- factor(full_data$beam_length, levels = c("5米以下", "5-10米", "10-15米", "15-20米", "20-25米", "25-30米", "30-35米", "35-40米", "40-45米", "45米以上"))
# 框架周长
full_data$frame_perimeter <- factor(full_data$frame_perimeter, levels = c("10米以下", "10-15米", "15-20米", "10-25米", "25-30米", "30-35米", "35-40米", "40-45米", "45-50米", "50米以上")) 
# 上纲长度
full_data$gear_head_line1_length <- factor(full_data$gear_head_line1_length, levels = c("20米以下", "20-40米", "40-60米", "60-80米", "80-100米", "100-120米", "120-150米", "150-200米", "200-250米", "250-300米", "300米以上"))
# 网具数量
full_data$trawl_net_used_quantity <- factor(full_data$trawl_net_used_quantity, levels = c("1顶", "2顶", "3顶", "4顶", "5顶", "6顶", "7顶", "8顶", "9顶","10顶及以上" ))
# 单顶网具/网囊重量
full_data$gear_weight_per_codend <- factor(full_data$gear_weight_per_codend, levels = c("5公斤以下", "5-10公斤", "10-20公斤", "20-30公斤", "30-40公斤", "40-50公斤", "50-60公斤", "60公斤以上"))
full_data$gear_weight_per_unit <- factor(full_data$gear_weight_per_unit, levels = c("50公斤以下", "50-100公斤", "100-200公斤", "200-300公斤", "300-400公斤", "400-500公斤", "500-600公斤", "600-800公斤", "800-1000公斤", "1000公斤以上"))
# 最小网目尺寸
full_data$trawl_mesh_minsize <- factor(full_data$trawl_mesh_minsize, levels = c("1.5公分以下", "1,5-2公分", "2-2.5公分", "2.5-3公分", "3-3.5公分", "3.5-4公分", "4-5.4公分", "5.4公分以上"))
# 最大网目尺寸
# full_data$mesh_maxsize <- factor(full_data$mesh_maxsize, levels = c())
# 拖网更新消耗数量
full_data$condend_expend <- factor(full_data$condend_expend, levels = c("5个以下", "5-10个", "10-15个", "15-20个", "20-25个", "25-30个", "30个以上"))
full_data$trawl_expend_quantity <- factor(full_data$trawl_expend_quantity, levels = c("1顶", "2顶", "3顶", "4顶", "5顶", "6顶", "7顶", "8顶", "9顶及以上"))


# 张网

# 张网渔具重量
full_data$stow_net_weight <- factor(full_data$stow_net_weight, levels = c("50公斤以下", "50-100公斤", "100-200公斤", "200-300公斤", "300-400公斤", "400-500公斤", "500-600公斤", "600-800公斤", "800-1000公斤", "1000-1500公斤", "1500-2000公斤", "2000-2500公斤", "2500公斤以上"))
# 更新消耗数量
full_data$stow_net_expend_quantity <- factor(full_data$stow_net_expend_quantity, levels = c("1顶", "2顶", "3顶", "4顶", "5顶", "6-10顶", "11-15顶", "16-20顶", "21-25顶", "26-30顶", "31-50顶", "50-100顶", "100-150顶", "150-200顶", "200-250顶", "250-300顶", "300-400顶", "400顶以上") )

5. 数据重编码(recording)

  • 渔具类型

    # 渔具类型(汉译英)
    full_data <- within(
      full_data,{
        gear_type[gear_type == "拖网"] <- "trawl"
        gear_type[gear_type == "刺网"] <- "gillnet"
        gear_type[gear_type == "围网"] <- "surrouding_net"
        gear_type[gear_type == "地拉网"] <- "beach_seine"
        gear_type[gear_type == "张网"] <- "stow_net"
        gear_type[gear_type == "敷网"] <- "lift_net"
        gear_type[gear_type == "抄网"] <- "scoop_net"
        gear_type[gear_type == "掩罩"] <- "falling_gear"
        gear_type[gear_type == "陷阱"] <- "traps"
        gear_type[gear_type == "钓具"] <- "hook_and_line"
        gear_type[gear_type == "耙刺"] <- "raks_and_pricks"
        gear_type[gear_type == "笼壶"] <- "baskets_and_pots"
      }
    )
  • 渔具名称

    # 渔具名称
    full_data <- within(
      full_data,{
        gear_name[gear_name == "定置三重刺网"] <- "G_set3"
        gear_name[gear_name == "定置双重刺网"] <- "G_set2"
        gear_name[gear_name == "定置单片刺网"] <- "G_set1"
        gear_name[gear_name == "漂流三重刺网"] <- "G_drift3"
        gear_name[gear_name == "漂流双重刺网"] <- "G_drift2"
        gear_name[gear_name == "漂流单片刺网"] <- "G_drift1"
        gear_name[gear_name == "漂流无下纲刺网"] <- "G_driftN"
    
        gear_name[gear_name == "单船无囊围网"] <- "S_nobag_1"
        gear_name[gear_name == "双船船无囊围网"] <- "S_nobag_2"
        gear_name[gear_name == "单船有囊围网"] <- "S_bag_1"
        gear_name[gear_name == "双船有囊围网"] <- "S_bag_2"
    
        gear_name[gear_name == "单船有袖单囊拖网(包括臂架拖网)"] <- "T_boat1"
        gear_name[gear_name == "双船有袖单囊拖网"] <- "T_boat2"
        gear_name[gear_name == "单船桁杆拖网"] <- "T_beam"
        gear_name[gear_name == "单船框架拖网"] <- "T_frame"
    
        gear_name[gear_name == "双锚单片张网"] <- "St_danpian_sm"
        gear_name[gear_name == "多锚单片张网"] <- "St_danpian_duom"
        gear_name[gear_name == "单桩桁杆张网"] <- "St_beam_dz"
        gear_name[gear_name == "单锚桁杆张网"] <- "St_beam_dm"
        gear_name[gear_name == "多锚桁杆张网"] <- "St_beam_sm"
        gear_name[gear_name == "双桩竖杆张网"] <- "St_stick_sz"
        gear_name[gear_name == "双锚竖杆张网"] <- "St_stick_sm"
        gear_name[gear_name == "船张竖杆张网"] <- "St_stick_cz"
        gear_name[gear_name == "多桩竖杆张网"] <- "St_stick_duoz"
        gear_name[gear_name == "单桩框架张网"] <- "St_frame_dz"
        gear_name[gear_name == "单锚框架张网"] <- "St_frame_dm"
        gear_name[gear_name == "多锚框架张网"] <- "St_frame_duom"
        gear_name[gear_name == "船张框架张网"] <- "St_frame_cz"
        gear_name[gear_name == "双桩张纲张网"] <- "St_canvas_sz"
        gear_name[gear_name == "双锚张纲张网"] <- "St_canvas_sm"
        gear_name[gear_name == "双桩有翼单囊张网"] <- "St_wing_sz"
        gear_name[gear_name == "双锚有翼单囊张网"] <- "St_wing_sm"
        gear_name[gear_name == "多锚有翼单囊张网"] <- "St_wing_duom"
        gear_name[gear_name == "单锚张纲张网(帆张网)"] <- "St_canvas_dm"
        gear_name[gear_name == "单桩张纲张网(帆张网)"] <- "St_canvas_dz"
        gear_name[gear_name == "多锚张纲张网"] <- "St_canvas_duom"
    
        gear_name[gear_name == "岸敷撑架敷网"] <- "St_1"
        gear_name[gear_name == "船敷撑架敷网"] <- "St_2"
        gear_name[gear_name == "船敷箕状敷网"] <- "St_3"
    
        gear_name[gear_name == "推移兜状抄网"] <- "St_4"
    
        gear_name[gear_name == "撑开掩网掩罩"] <- "St_5"
        gear_name[gear_name == "抛撒掩网掩罩"] <- "St_6"
    
        gear_name[gear_name == "导陷建网陷阱"] <- "St_7"
    
        gear_name[gear_name == "曳绳拟饵单钩钓"] <- "H_1"
        gear_name[gear_name == "垂钓拟饵复钩钓"] <- "H_2"
        gear_name[gear_name == "垂钓真饵复钩钓"] <- "H_3"
        gear_name[gear_name == "垂钓真饵单钩钓"] <- "H_4"
        gear_name[gear_name == "定置延绳真饵单钩钓"] <- "H_5"
        gear_name[gear_name == "漂流延绳拟饵复钩钓"] <- "H_6"
        gear_name[gear_name == "漂流延绳真饵单钩钓"] <- "H_7"
    
        gear_name[gear_name == "拖曳齿耙耙刺"] <- "St_1"
        gear_name[gear_name == "投射叉刺耙刺"] <- "St_2"
        gear_name[gear_name == "钩刺柄钩耙刺"] <- "St_3"
        gear_name[gear_name == "钩刺齿耙耙刺"] <- "St_4"
        gear_name[gear_name == "铲耙锹铲耙刺"] <- "St_5"
        gear_name[gear_name == "铲耙齿耙耙刺"] <- "St_6"
    
        gear_name[gear_name == "散布倒须笼"] <- "P_1"
        gear_name[gear_name == "定置延绳倒须笼"] <- "P_2"
        gear_name[gear_name == "定置延绳洞穴壶"] <- "P_3"
        gear_name[gear_name == "漂流延绳弹夹笼"] <- "P_4"
      }
    )
  • 上纲长度

    二、调查总体情况

    1. 不同类型渔具数量

    ggplot(full_data, aes(x =  fct_infreq(gear_type))) + 
      geom_bar() + 
      labs(title = "aaa中心",
           x = "数量",
           y = "作业类型")

三、不同类型渔具分析

(一)刺网gillnet

1. 选取刺网数据

# 筛选刺网数据
gillnet <- full_data |>
  filter(gear_type == "gillnet") |>
  select(
    survey_No.:gear_name, 
    gillnet_head_line_length, 
    gillnet_height, 
    gillnet_used_quantity, 
    gillnet_mesh_minsize, 
    mesh_minsize_aspiration, 
    gillnet_expend_quantity
    ) 

2. 刺网渔具类型分布

a <- gillnet |>
  group_by(gear_name) |>
  summarise(m = n())
ggplot(a, aes(x = gear_name, y = m)) + 
  geom_bar(stat = "identity") + 
  geom_text(aes(label = m), vjust = 1.2, color = "white")

ggplot(gillnet, aes(x = fct_infreq(gear_name))) + 
 geom_bar()

3. 刺网渔船长度分布

# 计算不同类型渔船长度平均值
gillnet |> 
  group_by(gear_name) |>
  summarise(mean(ship_length)
  )
# A tibble: 7 × 2
  gear_name `mean(ship_length)`
  <chr>                   <dbl>
1 G_drift1                 28.5
2 G_drift2                 31.1
3 G_drift3                 32.3
4 G_driftN                 27.0
5 G_set1                   25.3
6 G_set2                   20.3
7 G_set3                   21.5
ggplot(gillnet, aes(gear_name, ship_length)) + 
  geom_boxplot()

4. 不同类型刺网渔船数量

ggplot(gillnet, aes(fct_infreq(gear_name))) + 
  geom_bar()

ggplot(gillnet, aes(ship_length,fill = gear_name)) + 
  geom_histogram(breaks = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48))

ggplot(data = gillnet,
       mapping = aes(x = ship_length)
       ) + 
  scale_x_continuous(breaks = seq(3, 48, 6)) + 
  geom_histogram()
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

5. 上纲长度分布

# 上纲长度分布
ggplot(gillnet, aes(x = gillnet_head_line_length)) +
  geom_bar()

# 上纲长度分布
ggplot(gillnet, aes(x = gillnet_head_line_length)) +
  geom_bar()

6. 网口高度

# 网口高度分布
ggplot(gillnet, aes(x = gillnet_height)) +
  geom_bar()

6. 刺网渔具使用数量

# 刺网渔具使用数量
par(family='Songti')
ggplot(gillnet, aes(x = gillnet_used_quantity)) + 
  geom_bar() + 
  coord_flip()

7. 最小网目尺寸

ggplot(gillnet, aes(x = gillnet_mesh_minsize)) + 
  geom_bar() + 
  coord_flip()

7. 刺网消耗/更新数量

ggplot(gillnet, aes(x = gillnet_expend_quantity)) + 
  geom_bar() + 
  coord_flip()

(二)拖网trawl

1. 选取拖网数据

# 筛选拖网网数据
trawl <- full_data |>
  filter(gear_type == "trawl") |>
  select(
    survey_No.:gear_name, 
    # 桁杆长度/上纲长度/框架周长
    beam_length,
    frame_perimeter,
    gear_head_line1_length,
    # 作业时使用拖网数量
    trawl_net_used_quantity,
    # 拖网网囊数量
    codend_quantity_per_unit,
    # 单个网囊/网具重量
    gear_weight_per_codend,
    gear_weight_per_unit,
    # 最小网目尺寸
    trawl_mesh_minsize,
    # 期待最小网目尺寸
    mesh_minsize_aspiration,
    # 最大网目尺寸
    mesh_maxsize,
    # 网囊/网具消耗/更新数量
    condend_expend,
    trawl_expend_quantity
    ) 

2. 拖网渔具类型分布

ggplot(trawl, aes(x = fct_infreq(gear_name))) + 
 geom_bar()

3. 拖网渔船长度分布

# 计算不同类型渔船长度平均值
trawl |> 
  group_by(gear_name) |>
  summarise(mean(ship_length)
  )
# A tibble: 4 × 2
  gear_name `mean(ship_length)`
  <chr>                   <dbl>
1 T_beam                   NA  
2 T_boat1                  29.6
3 T_boat2                  36.1
4 T_frame                  33.1
ggplot(trawl, aes(gear_name, ship_length)) + 
  geom_boxplot()
Warning: Removed 1 rows containing non-finite values (`stat_boxplot()`).

4. 不同类型拖网渔船数量

ggplot(trawl, aes(fct_infreq(gear_name))) + 
  geom_bar()

ggplot(trawl, aes(ship_length,fill = gear_name)) + 
  geom_histogram(breaks = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48))
Warning: Removed 1 rows containing non-finite values (`stat_bin()`).

5. 拖网上纲长度

# 上纲长度分布
ggplot(trawl, aes(x = beam_length)) +
  geom_bar()

ggplot(trawl, aes(x = frame_perimeter)) +
  geom_bar()

ggplot(trawl, aes(x = gear_head_line1_length)) +
  geom_bar()+ 
  coord_flip()

6. 使用拖网渔具数量

# 拖网渔具使用数量
par(family='Songti')
ggplot(trawl, aes(x =  trawl_net_used_quantity)) + 
  geom_bar() + 
  coord_flip()

7. 单顶拖网网具重量

par(family='Songti')
ggplot(trawl, aes(x =  gear_weight_per_codend)) + 
  geom_bar() + 
  coord_flip()

ggplot(trawl, aes(x =  gear_weight_per_unit)) + 
  geom_bar() + 
  coord_flip()

8. 最小网目尺寸

ggplot(trawl, aes(x = trawl_mesh_minsize)) + 
  geom_bar() + 
  coord_flip()

9. 网口最大网目尺寸<桁杆和单拖两种>

 ggplot(trawl, aes(x = mesh_maxsize)) + 
  geom_bar() + 
  coord_flip()

10. 拖网更新/消耗数量

ggplot(trawl, aes(x = condend_expend)) + 
  geom_bar() + 
  coord_flip()

ggplot(trawl, aes(x = trawl_expend_quantity)) + 
  geom_bar() + 
  coord_flip()

(三)张网stow_net

1. 选取张网数据

# 筛选张网网数据
stow_net <- full_data |>
  filter(gear_type == "stow_net") |>
  select(
    survey_No.:gear_name, 
   
     # 桁杆长度/上纲长度/框架周长
    beam_length,
    frame_perimeter,
    gear_head_line1_length,
    gear_head_line2_length,
    # 侧纲/竖杆长度
    stow_net_height,
    
    # 张网渔具使用数量
    stow_net_used_quantity1,
    stow_net_used_quantity2,
    
    # 单顶张网网具重量
    stow_net_weight,
    
    # 最小网目尺寸
    surrounding_net_mesh_size,
    stow_net_mesh_minsize1,
    stow_net_mesh_minsize2,
    
    # 期待最小网目尺寸
    mesh_minsize_aspiration,
    
    # 网具消耗/更新数量
    stow_net_expend_quantity
    ) 

2. 张网渔具类型分布

ggplot(stow_net, aes(x = fct_infreq(gear_name))) + 
 geom_bar() +
  coord_flip()

3. 张网渔船长度分布

# 计算不同类型渔船长度平均值
stow_net |> 
  group_by(gear_name) |>
  summarise(mean(ship_length)
  )
# A tibble: 18 × 2
   gear_name       `mean(ship_length)`
   <chr>                         <dbl>
 1 St_beam_dm                     21.5
 2 St_beam_dz                     25.2
 3 St_beam_sm                     28.8
 4 St_canvas_dm                   35.4
 5 St_canvas_duom                 18.4
 6 St_canvas_dz                   NA  
 7 St_canvas_sm                   23.6
 8 St_canvas_sz                   25.4
 9 St_danpian_duom                32.0
10 St_danpian_sm                  23.5
11 St_frame_cz                    12.8
12 St_frame_dm                    18.2
13 St_frame_dz                    17.0
14 St_stick_cz                    16.4
15 St_stick_sm                    37.4
16 St_stick_sz                    12.4
17 St_wing_duom                   20.6
18 St_wing_sz                     20  
ggplot(stow_net, aes(gear_name, ship_length)) + 
  geom_boxplot()
Warning: Removed 1 rows containing non-finite values (`stat_boxplot()`).

4. 不同类型张网渔船数量

ggplot(stow_net, aes(fct_infreq(gear_name))) + 
  geom_bar()

ggplot(stow_net, aes(ship_length,fill = gear_name)) + 
  geom_histogram(breaks = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48))
Warning: Removed 1 rows containing non-finite values (`stat_bin()`).

5. 张网主尺度

6. 张网渔具使用数量

ggplot(stow_net, aes(x = stow_net_used_quantity1)) + 
  geom_bar() + 
  coord_flip() + 
  facet_wrap(~gear_name)

# ggplot(stow_net, aes(x = stow_net_used_quantity2))

7. 张网网具重量

par(family='Songti')
ggplot(stow_net, aes(x =  stow_net_weight)) + 
  geom_bar() + 
  coord_flip() +
  facet_wrap(~gear_name)

8. 张网渔具最小网目尺寸

ggplot(stow_net, aes(x = surrounding_net_mesh_size)) + 
  geom_bar() + 
  coord_flip()

ggplot(stow_net, aes(x = stow_net_mesh_minsize1)) + 
  geom_bar() + 
  coord_flip()

ggplot(stow_net, aes(x = stow_net_mesh_minsize2)) + 
  geom_bar() + 
  coord_flip()

9. 网具更新消耗数量

ggplot(stow_net, aes(x = stow_net_expend_quantity)) + 
  geom_bar() + 
  coord_flip() + 
  facet_wrap(~gear_name)