楼主: tmdxyz
4916 37

[有偿编程] 1000论坛币求作一个图 [推广有奖]

21
tmdxyz 发表于 2017-5-23 16:56:15 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-5-23 15:57
我先将Excel中的数据变成下面的形式,注意我的变量名都是小写,我一般不主动用大小写混合。

然后,我用 ...
谢谢。这会儿按照您告诉我的,我也大体做出来了,尽管我还是不懂代码里所含的意思。

现在还有一个问题,就是我做出来的图,legend离图形过于近了(见附图),该怎么让它稍微远离一些?

ppp.jpg (284.15 KB)

ppp.jpg

使用道具

22
cheetahfly 在职认证  发表于 2017-5-23 17:08:18 |只看作者 |坛友微信交流群
tmdxyz 发表于 2017-5-23 16:56
谢谢。这会儿按照您告诉我的,我也大体做出来了,尽管我还是不懂代码里所含的意思。

现在还有一个问题 ...
代码中的这一句:
legend.justification = c(-1, 1.5),
是微调legend的位置的,你可以自己微调一下。
另外,将图片另存为PDF格式后再截图,比直接存图或者直接截图的质量要高很多。

使用道具

23
tmdxyz 发表于 2017-5-23 17:14:05 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-5-23 17:08
代码中的这一句:
legend.justification = c(-1, 1.5),
是微调legend的位置的,你可以自己微调一下。
再次感谢。又有新问题:
我把代表疾病的name换成真正的名字以后(见截图10.jpg),然后全部复制,再利用语句
a <- tbl_df(read.table("clipboard", header = TRUE))
发现又有新的出错提示(见截图11.jpg)
“Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
  line 4 did not have 13 elements”

请问我该怎么办?

11.jpg (20.1 KB)

11.jpg

10.jpg (82.44 KB)

10.jpg

使用道具

24
tmdxyz 发表于 2017-5-23 17:20:46 |只看作者 |坛友微信交流群
zerofung 发表于 2017-5-22 16:18
您好!我利用您的代码,若果把这些疾病名称(a1,a2...d11)换成真正的名称(Leptospirosis,ECM,NT,Rabies,AD),那么画出来的图形,这些名称会自动按照字母顺序排列(AD,ECM,Leptospirosis,NT,Rabies)。可是我不想这样。该怎么办?

使用道具

25
cheetahfly 在职认证  发表于 2017-5-23 17:26:57 |只看作者 |坛友微信交流群
*****xyz 发表于 2017-5-23 17:14
再次感谢。又有新问题:
我把代表疾病的name换成真正的名字以后(见截图10.jpg),然后全部复制,再利用 ...
这是由于你的单元内容中含有空格造成的。
我们私聊吧,不要在这里“盖楼”了。

使用道具

26
zhangyangsmith 发表于 2017-5-24 15:55:45 |只看作者 |坛友微信交流群
See the original post:
请问这张图是用R哪个包画出来的?
https://bbs.pinggu.org/forum.php? ... &from^^uid=563172

使用道具

27
tmdxyz 发表于 2017-5-24 17:20:29 |只看作者 |坛友微信交流群
zhangyangsmith 发表于 2017-5-24 15:55
See the original post:
请问这张图是用R哪个包画出来的?
https://bbs.pinggu.org/forum.php?mod=viewthr ...
运行到此行时,提示出错。您能否看看?
Error in seq(from = lAngRngbgn, to = lAngRngbgn, to = lAngRngend, length.out = 101) :
  object 'lAngRngbgn' not found

# Fill in data

lapply(
  grep( "year", names(dfPlt) ),
  function(i)
  {
    ivY <-
      as.integer(
    gsub( "year", "", grep( "year", names(dfPlt), value = TRUE ) )
        )

    iRad <- ivY + iYearMap
   
    lapply(
      seq.int(iNclass - 1),
      function(j)
      {
    lAngRng <- fIndToAng(j)
   
    dvAng <- seq(from = lAngRngbgn,to=lAngRngbgn, to = lAngRngend, length.out = 101)
   
    polygon(
      x = c( iRad*sin(dvAng), rev( (iRad + 1)*sin(dvAng) ) ),
      y = c( iRad*cos(dvAng), rev( (iRad + 1)*cos(dvAng) ) ),
      border = NA, col = hsv( h = iHue, s = dfPlt[j, i], v = 1 )
           )
      }
      )
  }
      )
最后的图形是这样

zaq.jpg (226.54 KB)

zaq.jpg

使用道具

28
zerofung 学生认证  发表于 2017-5-24 22:02:22 |只看作者 |坛友微信交流群
  1. library(tidyverse)
  2. a <- read_csv("ccc.csv")
  3. verticalSegment <- data_frame(x = seq(0.5, 45.5, 1),  y = 0.5+2003, xend = seq(0.5, 45.5, 1), yend = 10.5+2003)
  4. horizonSegment <- data_frame(x = 0.5, y = seq(0.5, 10.5, 1)+2003, xend = 45.5, yend = seq(0.5, 10.5, 1)+2003)
  5. classSegment <- data_frame(x = c(0.6, 4.6, 14.6, 34.6), xend = c(4.4, 14.4, 34.4, 45.4), y = 11.5+2003, yend = 11.5+2003)
  6. classTail <- data_frame(x = c(0.6, 4.4, 4.6, 14.4, 14.6, 34.4, 34.6, 45.4),
  7.                         xend = c(0.6, 4.4, 4.6, 14.4, 14.6, 34.4, 34.6, 45.4),
  8.                         y = 11.5+2003, yend = 11+2003)
  9. b <- a %>% spread(key=Year,value=Val) %>%
  10.   rbind(.,c("z"," ",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)) %>% gather("Year","Val",3:12) %>%
  11.   mutate(Name = factor(Name,levels = c("HFMD","Influenza H1N1","Influenza H5N1","Influenza H7N9","Brucellosis","Hepatitis C","Hepatitis E","HIV Infection","Hydatid disease","Leprosy","Mumps","OID","Syphilis","Schistosomiasis","Haemorrhagic fever","Hepatitis A","Anthrax","Gonorrhoea","Cholera","ECM","Encephalitis","BD","AD","NT","Filariasis","Leptospirosis","Malaria","Paratyphoid","Pertussis","Plague","Rabies","Tuberculosis","Typhoid","Typhus","AHC","Dengue","Diptheria","Hepatitis B","Kala-azar","Measles","Poliomyelitis","Rubella","Seansonal influenza","Scarlet fever","SARS"," ")),Year = as.numeric(Year),Val = as.numeric(Val))
  12. ggplot(b) + geom_tile(aes(x = Name, y = Year, fill = Val)) +
  13.   geom_segment(data = horizonSegment, aes(x = x, y = y, xend = xend, yend = yend)) +
  14.   geom_segment(data = verticalSegment, aes(x = x, y = y, xend = xend, yend = yend)) +
  15.   geom_segment(data = classSegment , aes(x = x, y = y, xend = xend, yend = yend)) +
  16.   geom_segment(data = classTail, aes(x = x, y = y, xend = xend, yend = yend)) +
  17.   ylim(c(2000, 2016)) + annotate("text", x = " ", y = 2004:2013, label = as.character(2004:2013)) +
  18.   labs(x = NULL, y = NULL) + annotate("text", x = c(3, 11, 27, 40), y = 2014, label = LETTERS[1:4]) +
  19.   coord_polar(theta = "x",start = pi/360*9.5) + scale_fill_gradient(high = "#F77400", low = "yellow", na.value = "white") +
  20.   theme_classic() + theme(axis.line = element_blank(), axis.text.y = element_blank(), axis.ticks = element_blank(), legend.position = c(0,1))
复制代码

TIM截图20170524220236.png (64.98 KB)

TIM截图20170524220236.png

ccc.xlsx

21.11 KB

使用道具

29
zerofung 学生认证  发表于 2017-5-24 22:04:46 |只看作者 |坛友微信交流群
尽力了,根据楼上各位的提示做的,我也学到很多。也许要改的只有颜色了吧,按我之前说的自己挑选配色(真的花好多时间在细节微调上)

使用道具

30
tmdxyz 发表于 2017-5-24 22:52:17 |只看作者 |坛友微信交流群
zerofung 发表于 2017-5-24 22:04
尽力了,根据楼上各位的提示做的,我也学到很多。也许要改的只有颜色了吧,按我之前说的自己挑选配色(真的 ...
非常感谢您!我在RStudion上运行,会出错,提示的结果见
Error: unexpected input in:
"    labs(x = NULL, y = NULL) + annotate("text", x = c(3, 11, 27, 40), y = 2014, label = LETTERS[1:4]) +
    coord_polar(theta = "x"?


然后我把语句适当分成一块块,在R上运行,也是运行到这一步:coord_polar(theta = "x",start = pi/360*9.5) 就卡住了,只能出现一个堆叠的column图。

22.jpeg (197.23 KB)

22.jpeg

使用道具

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

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

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

GMT+8, 2024-4-26 19:45