# Data Visualization Troubleshooting

**URL:** https://forum.qiime2.org/t/data-visualization-troubleshooting/34327
**Category:** Other Bioinformatics Tools
**Tags:** phyloseq, visualization
**Created:** [September 14, 2026, 5:34pm UTC](https://forum.qiime2.org/t/data-visualization-troubleshooting/34327 "2026-09-14T17:34:44Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![ahsankaleem](https://forum.qiime2.org/letter_avatar_proxy/v4/letter/a/ba9def/32.png) [@ahsankaleem](https://forum.qiime2.org/u/ahsankaleem)
#### Post date: [September 14, 2026, 5:34pm UTC](https://forum.qiime2.org/t/data-visualization-troubleshooting/34327/1 "2026-09-14T17:34:44Z")

</div>

Hello everyone! I hope that you are enjoying the best of health.

I analysed my 16S data using QIIME2 pipeline. Although I have completed the data analysis, I could not generate publication quality figures using QIIME2 plugins. Then I used the .biom files generated through QIIME2 and ran phyloseq to make publication quality figures. The figures that I am getting with phyloseq are show sliughlty different results than the results shown by the figures genearted through QIIME2 plugins. I have the followintg questions:

1. Are there any QIIME2 plugins that can create publication quality figures?
2. Is it normal to get slightly different results, especially for alpha and beta diversity metrics, using phyloseq?
3. Does phyloseq just plot the data, or does it calculate metrics on its own before generating the visualizations?

Thanks!

---

<div class="post-metadata">

### Author: ![colinbrislawn](https://forum.qiime2.org/user_avatar/forum.qiime2.org/colinbrislawn/32/6221_2.png) [@colinbrislawn](https://forum.qiime2.org/u/colinbrislawn)
#### Post date: [September 17, 2026, 2:38am UTC](https://forum.qiime2.org/t/data-visualization-troubleshooting/34327/2 "2026-09-17T02:38:33Z")

</div>

There are many ways to make 'publication quality' figures! I like using R for print publications.

Note that phyloseq graphs are ggplot objects, so there are easy to modify to meet publication guidelines. The graphs in the .qzv files are easier to make but harder to modify, as you have learned! If you use Qiime2 thought the API, you also access the underlying data and make your own custom plots with seaborn or plotly or whatever.

> [@ahsankaleem](#):
>
> 1. Is it normal to get slightly different results, especially for alpha and beta diversity metrics, using phyloseq?

Yes, because there's a unifrac beta-diversity bug in phyloseq:

> <https://github.com/joey711/phyloseq/issues/956>
>
> A couple of members of my lab and I have been getting very different results whe…n using qiime2 versus phyloseq for calculating weighted unifrac values. It seems that the default parameters used by these tools (qiime diversity core-metrics-phylogenetic versus phyloseq::distance) generate very different weighted unifrac values, even when pre-rarefying the dataset (since qiime2 automatically rarefies).
> 
> I've already posted this issue with a reproducible example with the \`GlobalPatterns\` dataset on the \[qiime2 forum\](https://forum.qiime2.org/t/very-different-weighted-unifrac-results-for-qiime2-versus-phyloseq/4591). 
> 
> Any idea why there's such a big difference between the qiime2 and phyloseq defaults for calculating weighted unifrac values? Moreover, which method is generating "correct" weighted unifrac values? At least from analyzing my own microbiome dataset, the conclusions are completely different depending on if I use the qiime2- versus phyloseq-generated weighted unifrac values.

Note that bug was found in 2018, and phyloseq has not been under active development since then.

🙀

> [@ahsankaleem](#):
>
> 1. Does phyloseq just plot the data, or does it calculate metrics on its own before generating the visualizations?

Phyloseq can do both! So you could run unifrac with Qiime2 to get valid distances, then graph it with Phyloseq and ggplot2.

Doing both in phyloseq risks that bug:

```r
ordu = ordinate(GP1, "PCoA", "unifrac", weighted=TRUE)
# ⚠️ phyloseq::ordinate(distance="unifrac") is bugged, see https://github.com/joey711/phyloseq/issues/956 

```

Let us know what you try next!
