【问题标题】:How to limit a plot to certain ranges如何将绘图限制在特定范围内
【发布时间】:2021-12-20 06:55:49
【问题描述】:

我有一个图,其中有很多数据都集中在较小的数字中,一些异常值使 X 和 Y 轴的比例很大。

我不想删除这些异常值,因为它们并不正确,但我想创建一个单独的图,重点关注 X 轴 2,000,000 次观看和 Y 轴 5,000,000 名订阅者之间的数据。

Plot of Views and Subscribers

这是我创建情节的方式:

plot(covviddf$view_count, covviddf$subscriber_count, 
main = "Comparison between channel subscribers and video views", 
xlab = "Views", ylab = "Subscribers")

我想我可能只能指定:

plot(covviddf$view_count < 2000000, covviddf$subscriber_count < 5000000)

但它不起作用

【问题讨论】:

    标签: r plot


    【解决方案1】:

    我建议设置对数刻度。或者,您可能希望根据需要指定每个轴的最小值和最大值来设置 x 和 y 轴限制。

    指示 x 或 y 或两个坐标是否应以对数比例绘制:

    • log = “x”
    • log = “y”
    • log = “xy”

    OR 轴限制

    • xlim:x轴的极限;格式:xlim = c(min, max)
    • ylim:y轴的极限;格式:ylim = c(min, max)
    # --- sample data 
    view_count <- c(1,2,3,4,5,6,7,8,9,90,100,110)
    subscriber_count <- c(1,2,3,4,5,6,7,8,9,190,200,210)
    
    covviddf <- data.frame(view_count, subscriber_count)
    covviddf
    plot(covviddf$view_count, covviddf$subscriber_count, 
         main = "Comparison between channel subscribers and video views", 
         xlab = "Views", ylab = "Subscribers")
    
    # set log scale for x and y ----------------------------------------------------
    plot(covviddf$view_count, covviddf$subscriber_count, 
         main = "Comparison between channel subscribers and video views", 
         xlab = "Views", ylab = "Subscribers", log="xy")
    
    # set x and y axis limites by specifying the minimum and the maximum -----------
    plot(covviddf$view_count, covviddf$subscriber_count, 
         main = "Comparison between channel subscribers and video views", 
         xlab = "Views", ylab = "Subscribers", xlim=c(1,80), ylim=c(1,180))
    

    对数缩放结果:

    【讨论】:

      【解决方案2】:

      让这是您的示例数据集,只有 2 列:

      df<-data.frame(views=runif(250,0,1000000),subs=runif(250,0,1000000))
      

      要仅绘制那些观看次数达到 200000 且订阅人数达到 500000 的点,您可以执行以下操作:

      plot(df[df$views<200000 & df$subs<500000,]$views,
           df[df$views<200000 & df$subs<500000,]$subs,
           xlab='Views',ylab='Subscribers')
      

      这是你的图表:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 2018-09-29
        相关资源
        最近更新 更多