Использование разных шрифтов для меток вершин в двудольном сетевом графе (Rstudio) - PullRequest
1 голос
/ 27 мая 2019

Я хочу использовать разные шрифты для меток вершин в двудольном сетевом графе в R. Первый столбец - это имя человека, а второй столбец - организация, к которой относится этот человек (возможна двойная принадлежность).

Это пример данных

# R version 3.5.1 (2018-07-02) -- "Feather Spray"
# igraph 1.2.4

set.seed(7)

# bipartite network data
nodes <- read.csv("example.csv", header = TRUE, sep =";")
> nodes
   Person Organisation
1    John          SPD
2   Maria          SPD
3    John          CDU
4    Karl          CDU
5    Maik       Greens
6    Lisa         Left
7  Holger          SPD
8    Nico          CDU
9   Peter       Greens
10 Astrid          SPD
11   Theo         Left
12   Rita       Greens
13   Eric          FDP
14 Walter          CDU
15  Hilda          FDP
16  Boris          CDU
17   Olga          FDP
18   Nina         Left
19  Doris          CDU
20    Udo          SPD
summary(nodes)

library(igraph)

# different fonts and node shapes
shape <- c("circle", "square")
let <- c("Times", "Helvetica")

# creating graph (g)
g <- graph.data.frame(nodes, directed = FALSE)

# creating bipartite network
V(g)$type <- FALSE
V(g)$type[V(g)$name %in% nodes[, 1]] <- TRUE


plot(g, layout= layout_with_kk,
     vertex.shape= shape[as.numeric(V(g)$type) + 1],
     vertex.label.family= let[as.numeric(V(g)$type)+1]
)


Я назначаю два стиля шрифта (без специальных) для данных, которые онипризнается в сюжете.Тем не менее, возникает следующая ошибка, и я не знаю, как решить эту проблему:

In doTryCatch(return(expr), name, parentenv, handler) :
  Zeichensatzfamilie in der Windows Zeichensatzdatenbank nicht gefunden (Translation: Font family is not found in the Windows font database)


Я не смог найти ни одного связанного вопроса здесь.
Спасибо за вашу помощь и предложения заранее!

1 Ответ

1 голос
/ 28 мая 2019

Если я просто запускаю ваш код, я получаю похожее сообщение об ошибке, но вы можете исправить это, включив эти операторы перед вашим plot оператором.

windowsFonts("Times" = windowsFont("Times"))
windowsFonts("Helvetica" = windowsFont("Helvetica"))

Когда я включил эти операторы, я не получил сообщения об ошибке, и разные типы узлов отображались с разными шрифтами.

Graph with multiple fonts in vertex labels

...