gpt4 book ai didi

r - 如何在R中旋转 map

转载 作者:行者123 更新时间:2023-12-02 08:26:16 25 4
gpt4 key购买 nike

我只想旋转 map ,或者改变方向,例如 45 度,而不是其他元素。有可能吗?
例如:

  • 不旋转图像

  • enter image description here
  • 旋转图片

  • enter image description here

    我的初始代码没有旋转:
    library("maps")
    library("mapproj")
    library("mapdata")

    xlon = seq(-1, 7, 0.01)
    xlat = seq(34, 42, 0.01)

    map(database = "worldHires",
    xlim = c(min(xlon), max(xlon)), ylim = c(min(xlat),max(xlat)),
    mar = c(0, 0, 0, 0))
    text(2, 37, labels = "point1", pos = 4)
    points(2, 37)

    最佳答案

    通常当您调用 maps::map() 时它会在函数调用期间自动绘制 map ,但您可以通过 plot=F以防止这种情况。同时,您可以将调用的返回值存储在一个变量中,该变量将包含所请求 map 的轮廓的 x 和 y 坐标。然后,您可以使用一些三角函数来围绕中心点旋转所有 x 和 y 坐标,最后使用基本 R 绘图函数手动绘制旋转点。

    library('maps');
    library('mapproj');
    library('mapdata');

    xlon = seq(-1,7,0.01);
    xlat = seq(34,42,0.01);

    md <- map('worldHires',xlim=range(xlon),ylim=range(xlat),mar=c(0,0,0,0),plot=F);
    md2 <- md;
    rot <- -30*pi/180;
    about <- c(2,37);
    newangles <- atan2(md$y-about[2],md$x-about[1])+rot;
    mags <- sqrt((md$x-about[1])^2+(md$y-about[2])^2);
    md2$x <- about[1]+cos(newangles)*mags;
    md2$y <- about[2]+sin(newangles)*mags;
    par(mar=c(0,0,0,0)); plot(md2,type='l',xlim=range(xlon),ylim=range(xlat),axes=F,ann=F);

    text(about[1],about[2],labels='point1',pos=4);
    points(about[1],about[2]);

    rotated

    关于r - 如何在R中旋转 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873151/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com