grid.Call出错(L_textBounds,as.graphicsAnnot(x $ label),x $ x,x $ y,:找不到多边形边缘

时间:2012-05-14 10:19:22

标签: r ggplot2

我刚在Mac OS X上安装了RStudio,版本10.7.3 执行以下命令后

library(ggplot2)
qplot(mpg, wt, data=mtcars)

我收到以下错误:

Error in grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  : 
  Polygon edge not found
In addition: Warning messages:
1: In grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
  no font could be found for family "Arial"
2: In grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
  no font could be found for family "Arial"

任何想法,重启都没有用!!

干杯

16 个答案:

答案 0 :(得分:38)

这发生在我身上,我发现arial字体文件已被禁用。首先检查Arial.ttf是否已移至禁用字体目录。来自终端:

ls /Library/Fonts\ Disabled

如果是,请将其移回活动字体目录。

sudo mv /Library/Fonts\ Disabled/Arial.ttf /Library/Fonts

注销,登录,然后打开“Font Book”应用程序。在我的情况下,arial存在于手中,但它是存储在/Library/fonts/Microsoft/中的Microsoft版本。字体书现在可以在字体名称旁边显示一个黄色三角形,表示存在多个字体副本。突出显示字体名称,然后从Resolve Duplicates菜单中选择Edit命令。这应该禁用Microsoft副本,您可以通过选择其中一个arial类型面来确认(单击字体名称旁边的展开三角形),右键单击标有Off的那个,然后选择{{1} },它应该打开一个指向Microsoft fonts目录的窗口。

答案 1 :(得分:13)

所以我在几周之前的代码中遇到了同样的问题,而且计算机上没有任何大量的更新(除了操作系统,现在我可以考虑一下......)。 我解决它的方式是我通过调用

强制打开图形窗口
quartz()

在我的图表之前,它完成了诀窍。仍然不确定字体,我似乎有Arial到位。

答案 2 :(得分:3)

在一次又一次地遇到同样的问题并尝试不同的解决方案后,我决定从外部获取 Arial 字体并将其添加到 Font Book 。在本练习之前,我有许多MS Office附带的字体,如Arial Black,Arial Narrow,因此只有没有普通 Arial 字体可见。我猜这可以通过Mac上的MS应用程序应用的奇怪字体策略来解释,这将在更详细的讨论here中进行讨论。然而,似乎外部添加字体解决了这个问题。

All Fonts

答案 3 :(得分:3)

正如其他人所说,这个问题肯定与Microsoft Office升级有关(我的公司刚刚在问题浮出水面之前立即升级了软件)。

尝试运行简单的ggplot2图后,我收到以下错误和警告:

Error in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  : 
  polygon edge not found
Warning messages:
1: In grid.Call(C_stringMetric, as.graphicsAnnot(x$label)) :
  no font could be found for family "Arial"

我通过执行以下操作解决了这个问题:

(1)打开字体书

(2)导航到Arial字体

(3)右键单击 - > “恢复字体”

然后情节完美呈现。

我希望这有帮助!

答案 4 :(得分:2)

我在qqplot()函数中添加了一个额外的参数,如下所示:

theme(text=element_text(family="Garamond", size=14))

果然 - 得到了一张图表。最终结果是:

ggplot(train, aes(x = pclass, fill = factor(survived))) +
  geom_bar() +
  xlab("Pclass") +
  ylab("Total Count") +
  labs(fill = "Survived") +
  theme(text=element_text(family="Garamond", size=14))

我确实打开了Font Book,在我的系统上(Mac OSX 10.12.3)显示Arial已关闭。我确实安装了Microsoft应用程序,包括MS Excel,但我现在无法将任何字体的禁用与任何MS应用程序的安装相关联。 HTH

答案 5 :(得分:2)

经过几次试验,我认为此“修复”可以有所帮助。 首先尝试运行此命令以确保字体确实存在:

loadfonts(dev="win")

如果有,请致电以下内容,以确保您要呼叫的名称与R知道的名称相似:

windowsFonts()

否则,请尝试以下操作:

library(extrafont)
extrafont::font_import()

以上为我解决的问题。希望将来有人能得到同样的帮助。

答案 6 :(得分:1)

我遇到了同样的问题(有趣的是,我在调用" spplot"函数而不是任何ggplot2函数时收到错误)。因为我最近安装了MS Office for Mac,我尝试按原先的建议禁用MS重复的Arial字体,但是在执行此操作后仍然会反复收到错误消息。我最终只是删除所有MS Office重复字体(转到 - >计算机 - > Macintosh HD --->库 - >字体,然后将Microsoft文件夹移动到废纸篓)。我不确定这会对我的MS应用程序产生什么影响,但它似乎已经解决了我的R问题,这对我来说无论如何更重要!

答案 7 :(得分:1)

我决定转到Font Book,转到File - >恢复标准字体。

答案 8 :(得分:1)

我遇到了同样的问题,重置绘图区域 (dev.off()) 就足够了。

答案 9 :(得分:0)

我在更新操作系统和全新安装的MS Office后遇到了同样的问题,这似乎是罪魁祸首。

由于我无法使终端方法工作,我只是直接进入Font Book并手动启用了禁用字体(Arial,Times New Roman,Verdana)。重新启动后,现在一切似乎都正常。

这让我觉得这是最天真的解决方案,但实施imho也是最简单的。

答案 10 :(得分:0)

我在使用该功能时遇到了类似的问题:

ggarrange (ggpubr package)    

通过手动停用和激活包(通过单击“包”中的包)解决了这个问题。也许这也有助于其他人:)

答案 11 :(得分:0)

对于mac操作系统,我尝试了很多选项,但最后工作。   - 打开字体书并删除禁用(启用)arial字体。   - 重新启动计算机。

答案 12 :(得分:0)

在MacOS上工作时,我得到了相同的错误消息,并带有警告,而不是Arial the Roboto Condensed字体。因此,我安装了这些内容,这些内容删除了警告,但没有删除错误消息。

import React from "react";
import { View, TextInput, StyleSheet, Text } from "react-native";
import {
  widthPercentageToDP as wp,
  heightPercentageToDP as hp,
} from "react-native-responsive-screen";
import { MaterialCommunityIcons, AntDesign } from "@expo/vector-icons";

class RegisterTextBox extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      borderColor: "",
      isFocused: false,
    };
  }
  onBlur() {
    this.setState({ isFocused: false });
  }
  onFocus() {
    this.setState({ isFocused: true });
  }

  render() {
    const { isFocused } = this.state;
    const {
      value,
      placeholder,
      onChangeText,
      secureTextEntry,
      inputStyle,
      viewStyle,
      showIcon = this.state.showIcon,
      eyeIcon = false,
    } = this.props;
    return (
      <View style={[styles.container, viewStyle]}>
        <TextInput
          style={[styles.main, { borderBottomColor: this.state.borderColor }]}
          value={value}
          onChangeText={onChangeText}
          onBlur={() => this.onBlur()}
          onFocus={() => this.onFocus()}
          placeholder={placeholder}
          secureTextEntry={secureTextEntry}
          onChangeText={(val) => this.updateInputVal(val, "confirmPassword")}
        />
        {isFocused ? (
          <AntDesign
            name="checkcircle"
            size={18}
            color="black"
            style={{ paddingTop: 8 }}
          />
        ) : (
          <View />
        )}
        {eyeIcon ? (
          <MaterialCommunityIcons
            name="eye-off"
            size={24}
            color="black"
            style={{ paddingTop: 5, paddingLeft: 5 }}
          />
        ) : (
          <View />
        )}
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    height: hp(5.4),
    width: wp(65.2),
    borderBottomWidth: 1,
    flexDirection: "row",
    justifyContent: "space-between",
  },
  main: {
    flex: 1,
  },
});

export default RegisterTextBox;

然后我在https://community.rstudio.com/t/still-fighting-with-grid-call-c-textbounds-as-graphicsannot-x-label-x-x-x-y-polygon-edge-not-found-error/65559找到了重新安装X11 https://www.xquartz.org的提示。

此后,错误消失了,但是当代码在R文件中时,它仍然没有画出。但是,当我从R-markdown文档中编织RStudio时,它确实起作用。

答案 13 :(得分:0)

我不是很擅长这个,所以我不能先问最基本的问题,请原谅我:slight_smile:

我知道 R 控制台作业和 Rstudio 开始在图形绘图任务中失败,现在当您运行琐碎的绘图请求时,您会收到失败错误,并且没有绘图。

您重置会话了吗? (Ctrl+Shift+F10) 有时会话毕竟会损坏。

或者,如果您想尝试其他方法,在该路线之前,暂停图形设备可能是值得的。 dev.off() 并再次尝试该基本图。

当然,如果您的问题一直存在,并且一直持续到新的会议,那么我肯定不得不向其他具有更多专业知识的人低头考虑这个问题。

问候, 尼尔

答案 14 :(得分:0)

奇怪的错误。但对我来说,在 mac 上,解决方案很简单:只需更新 Xquartz。

cmd + space打开spotlight搜索,搜索Xquartz

打开后,转到 about -> Check for updates -> Update。

答案 15 :(得分:0)

为了快速测试此错误是否是字体相关问题的结果,您可以尝试在没有任何文本的情况下进行绘图(请参阅下面的代码)。如果第二个无文本绘图有效并且您使用的是 Mac,我会使用与其他人类似的方法并执行以下操作:

  1. 按 Command-Space 并输入 Font Book 以打开该应用
  2. 右键单击 Arial 并选择 Disabled Arial
  3. 右键单击 Arial 并选择 Enable Arial
  4. 当提示选择 Resolve Duplicates 时选择 Resolve Automatically
  5. 退出 RStudio 并重新打开 RStudio(我不需要重新启动计算机)
  6. 重新运行一些绘图代码,它运行良好,没有错误
    # test whether error is being generated by a font issue

    library(ggplot2)

    # this fails with font issue
    mtcars %>% 
      ggplot() + 
        aes(x = wt, y = mpg) + 
        geom_point()

    # remove all fonts to test if issue is font-related
    mtcars %>% 
      ggplot() + 
        aes(x = wt, y = mpg) + 
        geom_point() + 
        theme(text = element_blank())