修复ggplot2中的绘图大小相对于绘图标题

时间:2018-03-02 02:08:19

标签: r ggplot2

我正在使用ggplot2创建一些带标题的数字,但发现当标题有下降符(例如,小写的p,q,g,y)时,绘图的实际大小会略微缩小以适应所需的更大空间标题。

在正常的ggplot功能中是否有办法修复绘图大小,以便无论标题如何,数字都处于100%一致的位置?

这是一些显示问题的快速示例代码;人们可能需要在本地运行代码以清楚地看到图像中的差异。

df = pd.read_csv(r"C:\relationship.csv",dtype = datatype, skipinitialspace=True, usecols=fields)
df.fillna('',inplace=True)

def f(node_1 ,rel_type, node_2):
    try:
        tx = graph.begin()
        tx.evaluate('MATCH (a {node_id:$label1}),(b {node_id:$label2}) MERGE (a)-[r:'+rel_type+']->(b)',
                    parameters = {'label1': node_1, 'label2': node_2})
        tx.commit()
    except Exception as e:
        print(str(e))

for index, row in df.iterrows():
    if(index%1000000 == 0):
        print(index)
    try:
        f(row["node_1"],row["rel_type"],row["node_2"])
    except:
        print("error index: " + index)

No Descender

 library(ggplot2)
 # No letters with descenders in title
 ggplot(data=mtcars,aes(x=disp,y=mpg)) + 
    geom_point() + ggtitle("Scatter Plot")

Descender

1 个答案:

答案 0 :(得分:2)

您可以在gtable中设置相关高度

library(ggplot2)

p1 <- ggplot() + ggtitle("a")
p2 <- ggplot() + ggtitle("a\nb")

gl <- lapply(list(p1,p2), ggplotGrob)
th <- do.call(grid::unit.pmax, lapply(gl, function(g) g$heights[3]))
gl <- lapply(gl, function(g) {g$heights[3] <- th; g})
gridExtra::grid.arrange(grobs = gl, nrow=1)

enter image description here

编辑:这里是如何编辑一个图表以简化

g = ggplotGrob(qplot(1,1) + ggtitle('title'))
g$heights[3] = grid::unit(3,"line")
grid.draw(g)