使用ggplot(geom_line)在一个绘图上绘制2条线时,线条的颜色不符合我设置的颜色。我想要黑色和蓝色的线条,但结果是红色和蓝色。我尝试了没有(第一个代码)和(第二个)'scale_color_manual',也尝试了颜色的颜色,结果相同:
fisrt代码:
from django.contrib import admin
from .models import Entry
# Register your models here.
@admin.register(Entry)
class EntryAdmin(admin.ModelAdmin):
fieldsets = [
('Regular Expressions',
{'feilds' : ['pattern', 'test_string', 'user']}),
('Other Information',
{'feilds' : ['user', 'date_added']}),
]
list_display = ['pattern', 'test_string', 'user']
list_filter = ['user']
search_fields = ['test_string']
第二个代码:
ggplot(data=main_data) +
# black plot
geom_line(aes(x=vectors_growth_rate_with_predator,
y=disease_prevalnce_with_predator,
color = "black")) +
# blue plot
geom_line(aes(x=vectors_growth_rate_with_predator,
y=disease_prevalnce_without_predator,
color = "blue"))
答案 0 :(得分:4)
您的第一个代码应该是
ggplot(data=main_data) +
# black plot
geom_line(aes(x=vectors_growth_rate_with_predator,
y=disease_prevalnce_with_predator),
color = "black") +
# blue plot
geom_line(aes(x=vectors_growth_rate_with_predator,
y=disease_prevalnce_without_predator),
color = "blue")
您需要将color
放在aes()
之外。
对于您的第二个代码,您需要reshape your data from wide to long format。您可以通过多种方式执行此操作,以下内容适用于您。
library(tidyverse)
main_data <- main_data %>%
gather(key, value, c("disease_prevalnce_with_predator",
"disease_prevalnce_without_predator")
PrevVSGrowth <- ggplot(data=main_data) +
geom_line(aes(x=vectors_growth_rate_with_predator,
y=value,
col = key))
PrevVSGrowth +
scale_color_manual(values = c(disease_prevalnce_with_predator= 'black',
disease_prevalnce_without_predator = 'blue'))
在第一个图中,我们在每次调用geom_line()
时将美学设置为固定值。这将创建两个新变量,分别仅包含值“black”和“blue”。在OP的示例中,值“黑色”和“蓝色”随后被缩放为红色和浅蓝色,并添加了图例。
在第二个图中,我们将颜色审美映射变量(在此示例中为key
)。这通常是首选方式。