matplotlib 使用knitr设置Python的图形选项

vshtjzan  于 2023-03-03  发布在  Python
关注(0)|答案(1)|浏览(145)

我有一个knitr文档(Rmd或Rnw),我想在其中用R生成一些输出,用Python生成一些输出,但是,我不能改变Python中使用的图形选项。
具体来说,如果我在第一个Python块之前使用knitr::opts_chunk$set(fig.width = ..., fig.height = ...),那么这些选项将用于所有**后续的Python绘图,但是我似乎无法在之后更改图形选项,以便用不同的图形选项生成不同的绘图。
在下面的R/Markdown文档(py.Rmd)中,我包含了一个最小的例子,在Python设置块之后,显式的knitr::opts_chunk$set()以及单独的linebar块的选项都不被接受。

--- 
title: 'Figure options for Python with knitr'
output: html_document
---

These figure options work:

```{r opts}
knitr::opts_chunk$set(fig.width = 6, fig.height = 5)

Python setup works:

import pandas as pd
from matplotlib import pyplot as plt
d = pd.DataFrame({"x": [1, 2, 3, 4, 5], "y": [1, 3, 2, 5, 4]})

Plots work but all figure options are ignored:

knitr::opts_chunk$set(fig.width = 2, fig.height = 6)
d.plot.line(x = 'x', y = 'y')
plt.show()
d.plot.bar(x = 'x', y = 'y')
plt.show()

在R 4.2.1中使用`rmarkdown::render("py.Rmd")`,其中`knitr`为1.42,`rmarkdown`为2.20,`reticulate`为1.28,我得到以下输出,其中两个数字都是6 x 5,而不是2 x 6或6 x 2。

![](https://i.stack.imgur.com/B0cb1.png)
pxy2qtax

pxy2qtax1#

如果通过 Dataframe 使用plot,可将figsize指定为参数:

d.plot.bar(x = "x", y = "y", figsize = [2,6])

相关问题