标签: legend

如何将传说从情节中删除

我有一系列20个图(不是子图)可以在一个图中制作.我希望传说能够在盒子之外.同时,我不想改变轴,因为图形的大小减少了.请帮助我以下查询:

  1. 我想将情节框保留在情节区域之外.(我希望传说位于情节区域的右侧).
  2. 无论如何,我减少了图例框内文本的字体大小,因此图例框的大小会很小.

python matplotlib legend

866
推荐指数
15
解决办法
68万
查看次数

如何使用matplotlib.pyplot更改图例大小

这里有一个简单的问题:我试图将我的图例的大小设置得更matplotlib.pyplot小(即文本更小).我正在使用的代码是这样的:

plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0],  color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1],  color='r',  label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2],  color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)
Run Code Online (Sandbox Code Playgroud)

python size matplotlib legend

282
推荐指数
8
解决办法
39万
查看次数

带有twinx()的辅助轴:如何添加到图例?

我有一个带有两个y轴的情节,使用twinx().我也给线条贴了标签,并希望用它们来展示legend(),但我只是成功地在图例中获得了一个轴的标签:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(time, Swdown, '-', label = 'Swdown')
ax.plot(time, Rn, '-', label = 'Rn')
ax2 = ax.twinx()
ax2.plot(time, temp, '-r', label = 'temp')
ax.legend(loc=0)
ax.grid()
ax.set_xlabel("Time (h)")
ax.set_ylabel(r"Radiation ($MJ\,m^{-2}\,d^{-1}$)")
ax2.set_ylabel(r"Temperature ($^\circ$C)")
ax2.set_ylim(0, 35)
ax.set_ylim(-20,100)
plt.show()
Run Code Online (Sandbox Code Playgroud)

所以我只得到图例中第一个轴的标签,而不是第二个轴的标签"temp".我怎么能将这第三个标签添加到图例中?

在此输入图像描述

python axis matplotlib legend

256
推荐指数
7
解决办法
18万
查看次数

删除图例ggplot 2.2

我试图保持一层的图例(平滑)并删除另一层(点)的图例.我试过用guides(colour = FALSE)和关掉传说geom_point(aes(color = vs), show.legend = FALSE).

编辑:由于这个问题及其答案很受欢迎,一个可重现的例子似乎是有序的:

library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) + 
theme_bw() 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r legend ggplot2

222
推荐指数
4
解决办法
33万
查看次数

在轴外移动matplotlib图例会使其被图框切断

我熟悉以下问题:

Matplotlib savefig与情节外的传奇

如何将传说从情节中删除

看起来这些问题的答案很有可能摆脱轴的精确收缩,以便传说适合.

然而,收缩轴并不是一个理想的解决方案,因为它使数据变得更小,使得它实际上更难以解释; 特别是当它的复杂和有很多事情发生时...因此需要一个大的传奇

文档中复杂图例的示例演示了对此的需求,因为其图中的图例实际上完全遮盖了多个数据点.

http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots

我希望能够做的是动态扩展图框的大小以适应不断扩大的图形图例.

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')
Run Code Online (Sandbox Code Playgroud)

请注意最终标签"逆棕褐色"实际上是如何在图框之外(看起来严重截止 - 而不是出版质量!) 在此输入图像描述

最后,我被告知这是R和LaTeX中的正常行为,所以我有点困惑为什么在python中这么难...有历史原因吗?Matlab在这件事上同样很差吗?

我在pastebin http://pastebin.com/grVjc007上有这个代码的(仅略微)更长版本

python matplotlib legend

205
推荐指数
3
解决办法
13万
查看次数

在基本图形中绘制绘图区域外的图例?

正如标题所说:在使用基本图形时,如何在绘图区域外绘制图例?

我想要摆弄layout并制作一个只包含图例的空图,但我会对使用基本图形设施的方式感兴趣,例如,par(mar = )为图例右侧的图例获取一些空间.


这是一个例子:

plot(1:3, rnorm(3), pch = 1, lty = 1, type = "o", ylim=c(-2,2))
lines(1:3, rnorm(3), pch = 2, lty = 2, type="o")
legend(1,-1,c("group A", "group B"), pch = c(1,2), lty = c(1,2))
Run Code Online (Sandbox Code Playgroud)

生产:

替代文字

但正如所说,我希望图例在绘图区域之外(例如,图表/图表的右侧).

plot r legend

168
推荐指数
8
解决办法
31万
查看次数

将图例添加到ggplot2折线图中

我对ggplot2中的传说有疑问.我设法在同一图表中绘制三条线,并想要添加使用三种颜色的图例.这是使用的代码

library(ggplot2)    
require(RCurl)

link<-getURL("https://dl.dropbox.com/s/ds5zp9jonznpuwb/dat.txt")
datos<- read.csv(textConnection(link),header=TRUE,sep=";")
datos$fecha <- as.POSIXct(datos[,1], format="%d/%m/%Y")    

temp = ggplot(data=datos,aes(x=fecha, y=TempMax,colour="1")) + 
           geom_line(colour="red") + opts(title="TITULO") +
           ylab("Temperatura (C)") + xlab(" ") + 
           scale_y_continuous(limits = c(-10,40)) + 
           geom_line(aes(x=fecha, y=TempMedia,colour="2"),colour="green") + 
           geom_line(aes(x=fecha, y=TempMin,colour="2"),colour="blue") +
           scale_colour_manual(values=c("red","green","blue"))

temp
Run Code Online (Sandbox Code Playgroud)

和输出

ggplot三行

我想添加一个带有三种颜色的图例和变量的名称(TempMax,TempMedia和TempMin).我试过了

scale_colour_manual
Run Code Online (Sandbox Code Playgroud)

但找不到确切的方法.

遗憾的是,原始数据已从链接网站中删除,无法恢复.但它们来自具有此格式的meteo数据文件

"date","Tmax","Tmin","Tmed","Precip.diaria","Wmax","Wmed"
2000-07-31 00:00:00,-1.7,-1.7,-1.7,-99.9,20.4,20.4
2000-08-01 00:00:00,22.9,19,21.11,-99.9,6.3,2.83
2000-08-03 00:00:00,24.8,12.3,19.23,-99.9,6.8,3.87
2000-08-04 00:00:00,20.3,9.4,14.4,-99.9,8.3,5.29
2000-08-08 00:00:00,25.7,14.4,19.5,-99.9,7.9,3.22
2000-08-09 00:00:00,29.8,16.2,22.14,-99.9,8.5,3.27
2000-08-10 00:00:00,30,17.8,23.5,-99.9,7.7,3.61
2000-08-11 00:00:00,27.5,17,22.68,-99.9,8.8,3.85
2000-08-12 00:00:00,24,13.3,17.32,-99.9,8.4,3.49
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2 r-faq

136
推荐指数
2
解决办法
23万
查看次数

删除matplotlib图上的图例

要在matplotlib图中添加图例,只需运行即可legend().

如何从情节中删除图例?

(我最接近的是运行legend([])以便从数据中清空图例.但是在右上角留下了一个丑陋的白色矩形.)

matplotlib legend

132
推荐指数
9
解决办法
11万
查看次数

为组合ggplots添加一个共同的图例

我有两个水平对齐的ggplots grid.arrange.我查看了很多论坛帖子,但我尝试的所有内容似乎都是现在更新并命名为其他内容的命令.

我的数据看起来像这样;

# Data plot 1                                   
        axis1     axis2   
group1 -0.212201  0.358867
group2 -0.279756 -0.126194
group3  0.186860 -0.203273
group4  0.417117 -0.002592
group1 -0.212201  0.358867
group2 -0.279756 -0.126194
group3  0.186860 -0.203273
group4  0.186860 -0.203273

# Data plot 2   
        axis1     axis2
group1  0.211826 -0.306214
group2 -0.072626  0.104988
group3 -0.072626  0.104988
group4 -0.072626  0.104988
group1  0.211826 -0.306214
group2 -0.072626  0.104988
group3 -0.072626  0.104988
group4 -0.072626  0.104988

#And I run this:
library(ggplot2)
library(gridExtra)


groups=c('group1','group2','group3','group4','group1','group2','group3','group4')

x1=data1[,1]
y1=data1[,2]

x2=data2[,1]
y2=data2[,2]

p1=ggplot(data1, aes(x=x1, y=y1,colour=groups)) + geom_point(position=position_jitter(w=0.04,h=0.02),size=1.8) …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2 gridextra

118
推荐指数
9
解决办法
9万
查看次数

有没有办法在ggplot2中更改图例项之间的间距?

有没有办法在ggplot2中更改图例项之间的间距?我现在有

legend.position ="top" 
Run Code Online (Sandbox Code Playgroud)

它会自动生成水平图例.然而,物品的间距非常接近,我想知道如何将它们分开更远.

r legend ggplot2

108
推荐指数
8
解决办法
7万
查看次数

标签 统计

legend ×10

matplotlib ×5

r ×5

ggplot2 ×4

python ×4

axis ×1

gridextra ×1

plot ×1

r-faq ×1

size ×1