楼主: 一个俗人
1217 4

[问答] 请教这样的统计图是怎么画出来的 [推广有奖]

  • 2关注
  • 1粉丝

博士生

9%

还不是VIP/贵宾

-

TA的文库  其他...

俗人书房

俗人书房

威望
0
论坛币
1230 个
通用积分
18.5400
学术水平
4 点
热心指数
4 点
信用等级
0 点
经验
3834 点
帖子
82
精华
0
在线时间
275 小时
注册时间
2014-6-12
最后登录
2024-3-19

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:统计图 统计图

回帖推荐

沙发
shizidushu 发表于 2017-4-26 11:19:43 |只看作者 |坛友微信交流群
理论上用TIKZ应该是可以的

使用道具

藤椅
一个俗人 发表于 2017-4-26 22:16:54 |只看作者 |坛友微信交流群
shizidushu 发表于 2017-4-26 11:19
理论上用TIKZ应该是可以的
latex吗

使用道具

板凳
shizidushu 发表于 2017-4-26 23:05:57 |只看作者 |坛友微信交流群
是的。理论上是latex的tikz包可以制作出一模一样的,tikz的官方文档有1k多页,慢慢看吧。另外如果只是要画出一个类似的图,可以有很多其他解决方案的,比如gnuplot(听说过,不了解);r语言的ggplot2包;

使用道具

报纸
zhangyangsmith 发表于 2017-5-24 15:59:31 |只看作者 |坛友微信交流群
  1. # Invent some dummy data according to the plots
  2. dfDmmy <-
  3.   merge(
  4.     data.frame(
  5.       treatment =
  6.         factor( x = c(1:4), levels = c(1:4),
  7.                 labels = c("C", "T1", "T2", "T3") )
  8.               ),
  9.     data.frame(
  10.       requirement =
  11.         factor(
  12.           x = c(1:5), levels = c(1:5),
  13.           labels =
  14.             paste(
  15.               "Requires", c("Name", "Phone Number", "Email", "Address", "ID"),
  16.               sep = "\n"
  17.                  )
  18.               )
  19.               )
  20.        )

  21. set.seed(1705171044)

  22. dfDmmy$mid <-
  23.   mapply(
  24.     FUN = rnorm,
  25.     mean = c(0.8, 0.6, 0.5, 0.3, 0.1)[ as.integer(dfDmmy$requirement) ],
  26.     MoreArgs = list( n = 1, sd = 0.01 )
  27.         )

  28. dfDmmy$dev <-
  29.   c(0.05, 0.05, 0.05, 0.05, 0.025)[ as.integer(dfDmmy$requirement) ]

  30. dfDmmy$lower <- with(dfDmmy, mid - dev)

  31. dfDmmy$upper <- with(dfDmmy, mid + dev)

  32. with(
  33.   dfDmmy,
  34.   {
  35.     # Set up plot
  36.     plot(
  37.       NA, type = "n",
  38.       xlim = c( 0, ( nlevels(treatment) + 1 )*nlevels(requirement) ),
  39.       ylim = c(0, 1), axes = FALSE,
  40.       xlab = NA_character_, ylab = "Proportion of Counties with Forums"
  41.         )
  42.    
  43.     # Draw axis
  44.     axis(
  45.       side = 1,
  46.       at =
  47.         ( as.integer(requirement) - 1 )*( nlevels(treatment) + 1 ) +
  48.         as.integer(treatment),
  49.       labels = as.character(treatment), mgp = c(3, 0.75, 0)
  50.         )
  51.    
  52.     axis(
  53.       side = 1,
  54.       at =
  55.         seq.int( nlevels(requirement) )*( nlevels(treatment) + 1 ) -
  56.         ( nlevels(treatment) + 1 )/2,
  57.       labels = levels(requirement), mgp = c(9, 3, 0), tick = FALSE
  58.         )
  59.    
  60.     axis( side = 2, at = c(0:5/5) )
  61.    
  62.     box()
  63.    
  64.     # Separate different requirements
  65.     abline(
  66.       v = seq.int( nlevels(requirement) - 1 )*( nlevels(treatment) + 1 )
  67.           )
  68.          
  69.     # Add intervals
  70.     mapply(
  71.       FUN = segments,
  72.       x0 =
  73.         ( as.integer(requirement) - 1 )*( nlevels(treatment) + 1 ) +
  74.         as.integer(treatment),
  75.       y0 = lower, y1 = upper
  76.           )
  77.    
  78.     # Add middle points
  79.     mapply(
  80.       FUN = points,
  81.       x =
  82.         ( as.integer(requirement) - 1 )*( nlevels(treatment) + 1 ) +
  83.         as.integer(treatment),
  84.       y = mid, pch = c(18, 15:17)[ as.integer(treatment) ]
  85.           )
  86.   }
  87.     )
复制代码

ContactInfo.png (14.96 KB)

ContactInfo.png

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 23:52