我正在尝试使用图表下方的图例创建一个ggplot2图.
ggplot2书在第112页上说"传说的位置和对齐由主题设置legend.position控制,值可以是右,左,上,下,无(无图例)或数字位置".
下面的代码工作(因为它是默认的"右"),并且它也可以使用"none"作为图例位置,但是"left","top","bottom"都会失败并显示"grid in Grid.Call" .graphics("L_setviewport",pvp,TRUE):视口的非有限位置和/或大小"
library(ggplot2)
(myDat <- data.frame(cbind(VarX=10:1, VarY=runif(10)),
Descrip=sample(LETTERS[1:3], 10, replace=TRUE)))
qplot(VarX,VarY, data=myDat, shape=Descrip) +
opts(legend.position="right")
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?重新定位一个传奇必须非常普遍,所以我认为这是我.
我在matplotlib中生成一些图,并希望为某些数据添加解释性文本.我希望在我的图例中有一个字符串作为'0-10'项目上方的单独图例项目.有谁知道是否有可能这样做?
这是我的传奇代码:
ax.legend(['0-10','10-100','100-500','500+'],loc='best')
我可以使用Chart.JS创建一个饼图,其代码如下:
HTML
<div>
<canvas id="top10ItemsChart" style="padding-left:20px" width="320" height="320"></canvas>
<div id="top10Legend" class="chart-legend"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的
var data = [{
value: 2755,
color: "#FFE135",
label: "Bananas"
}, {
value: 2256,
color: "#3B5323",
label: "Lettuce, Romaine"
}, {
value: 1637,
color: "#fc6c85",
label: "Melons, Watermelon"
}, {
value: 1608,
color: "#ffec89",
label: "Pineapple"
}, {
value: 1603,
color: "#021c3d",
label: "Berries"
}, {
value: 1433,
color: "#3B5323",
label: "Lettuce, Spring Mix"
}, {
value: 1207,
color: "#046b00",
label: "Broccoli"
}, {
value: 1076,
color: …
Run Code Online (Sandbox Code Playgroud) 我试图bbox_to_anchor()
在Python的matplotlib图中使用关键字.
这是我制作的一个非常基本的情节:
import matplotlib.pyplot as plt
x = [1,2,3]
plt.subplot(211)
plt.plot(x, label="test1")
plt.plot([3,2,1], label="test2")
plt.legend(bbox_to_anchor=(0, -0.15, 1, 0), loc=2, ncol=2, mode="expand", borderaxespad=0)
plt.show()
Run Code Online (Sandbox Code Playgroud)
它基于以下示例:http: //matplotlib.org/users/legend_guide.html#plotting-guide-legend
我正在尝试使用自动将图例放置在绘图之外bbox_to_anchor()
.在此示例中,bbox_to_anchor()
列出了4个参数.
在此特定示例(上图)中,图例位于图表下方,因此每次更改图表时需要手动输入数字-0.15(字体大小,轴标题删除等). 是否可以针对以下情况自动计算这4个数字?:
如果没有,是否有可能在Python中对这些数字做出好的猜测?
此外,在上面的示例代码中,我将最后2个数字设置bbox_to_anchor()
为1和0,因为我不明白它们是什么或它们如何工作.最后2个数字bbox_to_anchor()
是什么意思?
我需要帮助将饼图的编号放在图例中
如果我用鼠标悬停图表我可以看到相对于每个项目的数字
我想在传奇中显示它
到目前为止重要的代码:
var tempData = {
labels: Status,
datasets: [
{
label: "Status",
data: Qtd,
backgroundColor: randColor
},
]
};
var ctx = $("#pieStatus").get(0).getContext("2d");
var chartInstance = new Chart(ctx, {
type: 'pie',
data: tempData,
options: {
title: {
display: true,
fontsize: 14,
text: 'Total de Pedidos por Situação'
},
legend: {
display: true,
position: 'bottom',
},
responsive: false
}
});
Run Code Online (Sandbox Code Playgroud)
"Qtd","randColor"已经是值"var"
假设我不需要"正确的"变量映射,但仍希望使用图例键来帮助理解图表.我的实际数据类似于以下df
df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))
library(ggplot2)
ggplot(df) +
geom_line(aes(id, line, colour = "line")) +
geom_point(aes(id, points, colour = "points"))
Run Code Online (Sandbox Code Playgroud)
基本上,我希望传说键相对于points
......只是一个点,没有中间的线.我接近这个:
library(reshape2)
df <- melt(df, id.vars="id")
ggplot() +
geom_point(aes(id, value, shape = variable), df[df$variable=="points",]) +
geom_line(aes(id, value, colour = variable), df[df$variable=="line",])
Run Code Online (Sandbox Code Playgroud)
但它定义了两个独立的传说.修复第二个代码(并且必须重塑我的数据)也没关系,但我更喜欢一种方法(如果有的话)手动更改任何图例键(并继续使用第一个approch).谢谢!
编辑:
谢谢@alexwhan你更新了我对变量映射的记忆.但是,到目前为止我最简单的方法仍然是以下(非常糟糕的黑客!):
df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))
ggplot(df) +
geom_line(aes(id, line, colour = "line")) +
geom_point(aes(id, points, shape = "points")) +
theme(legend.title=element_blank())
Run Code Online (Sandbox Code Playgroud)
这只是隐藏了两个不同 …
我使用以下代码绘制2 geom_point图:
source("http://www.openintro.org/stat/data/arbuthnot.R")
library(ggplot2)
ggplot() +
geom_point(aes(x = year,y = boys),data=arbuthnot,colour = '#3399ff') +
geom_point(aes(x = year,y = girls),data=arbuthnot,shape = 17,colour = '#ff00ff') +
xlab(label = 'Year') +
ylab(label = 'Rate')
Run Code Online (Sandbox Code Playgroud)
我只是想知道如何在右侧添加图例.具有相同的形状和颜色.三角粉色应该有传说中的"女人"和蓝色圆圈的传说"男人".看起来很简单但经过多次试验我无法做到.(我是ggplot的初学者).
我想在matplotlib图的传说中显示Times New Roman中的字体.我已将所有其他刻度标签/轴标签/标题更改为Times New Roman,并搜索了文档,但我只能找到如何使用prop
参数更改图例中的字体大小pyplot.legend()
谢谢
当然,在发布后,我找到了答案.针对同一问题的其他人的解决方案:
import matplotlib as mpl
mpl.rc('font',family='Times New Roman')
我创建了一个带有自定义图例的情节ggplot2
.我试图在图例中的所有项目周围绘制一个框,但是我只能在每个单独的项目周围绘制一个框.如何围绕所有项目只创建一个框?
library(ggplot2)
ggplot(mpg, aes(displ, cty)) +
geom_point(aes(shape = "Data")) +
stat_smooth(aes(linetype = "Regression"), method = "lm",
formula = y ~ x, se = FALSE, colour = 1, size = 0.5) +
scale_shape_manual(values = 1) +
labs(shape = "", linetype = "") +
theme_classic() +
theme(panel.border = element_rect(colour = "black", fill=NA),
aspect.ratio = 1, axis.text = element_text(colour = 1, size = 12),
legend.background = element_rect(linetype = 2, size = 0.5, colour = 1))
Run Code Online (Sandbox Code Playgroud)
我想在ggvis
图表下方制作一个水平图例.我可以使用图例属性将其放置在图表下方,但不知道如何使图标在图例标题下方水平.以下是可重复的最低代码(从网上抓取).
df1 = data.frame(x=sample(1:10), y=sample(1:10))
df2 = data.frame(x=1:10, y=1:10)
df3 = data.frame(x=1:10, y=sqrt(1:10))
df2$id <- 1
df3$id <- 2
df4 <- rbind(df2,df3)
df4$id <- factor(df4$id)
df4 %>% ggvis(x=~x, y=~y, stroke=~id) %>% layer_lines() %>%
# make sure you use add relative scales
add_relative_scales() %>%
# values for x and y need to be between 0 and 1
# e.g for the x-axis 0 is the at far-most left point and 1 at the far-right
add_legend("stroke", title="Cylinders",
properties=legend_props(
legend=list(
x=scaled_value("x_rel", …
Run Code Online (Sandbox Code Playgroud)