text: user1369: I have RNA-seq raw counts data for 50 samples. 20 Normal and 30 tumor. After differential analysis I got 30 DEGs. I want to make a violin plot showing the expression of each gene. I transformed counts to logCPM.
  counts:
  Genes   Tumor1  Tumor2  Normal1 Normal2
  RP11-351J23.1   0   5   6   0
  MIR17HG 989 896 8   0
  RP11-563N12.2   0   0   0   0
  LINC04393   0   2   16  0
  RP11-336A10.4   0   0   0   0
  DRH6-AB1    53  13  39  9
  RP11-115J16.1   0   0   50  6
  LINC70518   2   65  0   0
  
  logCPM <- cpm(counts, prior.count=2, log = TRUE)
  
                  Tumor1   Tumor2  Normal1  Normal2
  RP11-351J23.1 11.84477 13.09301 15.71337 11.84477
  MIR17HG      19.84847 19.79600 16.10350 11.84477
  RP11-563N12.2 11.84477 11.84477 11.84477 11.84477
  LINC04393     11.84477 12.47723 17.06532 11.84477
  RP11-336A10.4 11.84477 11.84477 11.84477 11.84477
  DRH6-AB1      15.72257 14.03896 18.32772 19.19283
  RP11-115J16.1 11.84477 11.84477 18.68262 18.61229
  LINC70518     12.44599 16.08368 11.84477 11.84477
  
  I want to make violin plot for each gene showing expression for Tumors and Normals with this. 
  I first transformed logCPM. then tried like below:
  ggplot2.violinplot(data=logCPM, xName='RP11-351J23.1',
      groupName='Tumor', position=position_dodge(0.8), 
      backgroundColor="white", groupColors=c('#999999','#E69F00'),
      legendPosition="top")
  
  
  user77: You'll want to use long-form data for everything:
  library(dplyr)
  library(ggplot2)
  logCPM$gene = row.names(logCPM)
  d = logCPM %>% gather(Sample, logCPM, -gene)
  d$group = c(rep("Tumor", 2), rep("Normal", 2))
  geneOfInterest = d %>% filter(gene == 'RP11-351J23.1')
  ggplot(geneOfInterest, aes(x=group, y=logCPM)) + geom_violin()
  
  That's a simple example, you can tweak it to meet your needs.
  
original_text: 1369: <p>I have RNA-seq raw counts data for 50 samples. 20 Normal and 30 tumor. After differential analysis I got 30 DEGs. I want to make a violin plot showing the expression of each gene. I transformed counts to logCPM.</p>
  
  <p>counts:</p>
  
  <pre><code>Genes   Tumor1  Tumor2  Normal1 Normal2
  RP11-351J23.1   0   5   6   0
  MIR17HG 989 896 8   0
  RP11-563N12.2   0   0   0   0
  LINC04393   0   2   16  0
  RP11-336A10.4   0   0   0   0
  DRH6-AB1    53  13  39  9
  RP11-115J16.1   0   0   50  6
  LINC70518   2   65  0   0
  
  logCPM &lt;- cpm(counts, prior.count=2, log = TRUE)
  
                  Tumor1   Tumor2  Normal1  Normal2
  RP11-351J23.1 11.84477 13.09301 15.71337 11.84477
  MIR17HG      19.84847 19.79600 16.10350 11.84477
  RP11-563N12.2 11.84477 11.84477 11.84477 11.84477
  LINC04393     11.84477 12.47723 17.06532 11.84477
  RP11-336A10.4 11.84477 11.84477 11.84477 11.84477
  DRH6-AB1      15.72257 14.03896 18.32772 19.19283
  RP11-115J16.1 11.84477 11.84477 18.68262 18.61229
  LINC70518     12.44599 16.08368 11.84477 11.84477
  </code></pre>
  
  <p>I want to make violin plot for each gene showing expression for Tumors and Normals with this. </p>
  
  <p>I first transformed logCPM. then tried like below:</p>
  
  <pre><code>ggplot2.violinplot(data=logCPM, xName='RP11-351J23.1',
      groupName='Tumor', position=position_dodge(0.8), 
      backgroundColor="white", groupColors=c('#999999','#E69F00'),
      legendPosition="top")
  </code></pre>
   77: <p>You'll want to use long-form data for everything:</p>
  
  <pre class="lang-r prettyprint-override"><code>library(dplyr)
  library(ggplot2)
  logCPM$gene = row.names(logCPM)
  d = logCPM %&gt;% gather(Sample, logCPM, -gene)
  d$group = c(rep("Tumor", 2), rep("Normal", 2))
  geneOfInterest = d %&gt;% filter(gene == 'RP11-351J23.1')
  ggplot(geneOfInterest, aes(x=group, y=logCPM)) + geom_violin()
  </code></pre>
  
  <p>That's a simple example, you can tweak it to meet your needs.</p>
  