使用ggplot更改x轴刻度标签

时间:2015-07-07 14:32:02

标签: python ggplot2

我正在使用ggplot绘制直方图,其中x变量是分类变量,我想更改x轴刻度标签。这是我的代码:

from pandas import *
from ggplot import *

df = pandas.read_csv('C:\Users\...csv')

def plot_data(df):

    plot = ggplot(data_by_group, aes('x', 'y')) +
           geom_histogram(stat='bar') + ggtitle('title') + 
           xlab('x-label') + ylab('y-label')  
    #x_ticklabels = ['a', 'b', 'c']    
    return plot

我想在x轴上使用x_ticklabels而不是分类变量中的数字。

关于如何做到这一点的任何想法?

谢谢

2 个答案:

答案 0 :(得分:2)

有一个很好的例子here(在"设置刻度线标签"),显示如何执行此操作。 简而言之,给定一个ggplot" bp",您可以通过为数据中的每个类别设置标签来控制实际的刻度标签,如下所示:

bp + scale_x_discrete(breaks=c("ctrl", "trt1", "trt2"),
                  labels=c("Control", "Treat 1", "Treat 2"))

所以在你的情况下,我会想你会按照

的方式做点什么
plot = ggplot(data_by_group, aes('x', 'y')) +
       geom_histogram(stat='bar') + ggtitle('title') + 
       xlab('x-label') + ylab('y-label') +
       scale_x_discrete(breaks=c(1, 2, 3),
                  labels=c("a", "b", "c"))

答案 1 :(得分:0)

按如下所示更改MeloMCR的答案以使其起作用:

do shell script "PATH=" & quoted form of "/usr/local/bin:$PATH" & " bitbar refresh"

    plot = ggplot(data_by_group, aes('x', 'y')) +
   geom_histogram(stat='bar') + ggtitle('title') + 
   xlab('x-label') + ylab('y-label') +
   scale_x_discrete(breaks=c(1, 2, 3),
              labels=c("a", "b", "c"))

列规范(c(a1,a2,a3,....)无法通过python识别。