R-ggplot线条颜色(使用geom_line)不会改变

时间:2018-01-01 17:50:45

标签: r ggplot2 colors

使用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"))

enter image description here

1 个答案:

答案 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)。这通常是首选方式。