- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 plotnine
做了两个图在 python 中。我知道并不真正支持绘制子图( here )。我想知道是否有办法解决并在一个图中创建子图。
我想用 plotineplot.draw()
把它们做成图然后用 matplotlib 读取或先将它们保存为 png,然后用 matplotlib 读取它们并将它们放在一起。但是,我对 matplotlib 不是很方便,到现在为止的每一次尝试都是徒劳的。
示例 plotnine 图:
from plotnine import data
from plotnine import *
plot1 = (ggplot(data.mtcars, aes('wt', 'mpg', color='factor(gear)'))
+ geom_point()
+ stat_smooth(method='lm')
+ facet_wrap('~gear'))
最佳答案
最终我创建了一个解决方法,将绘图保存为图像,然后再次加载它们并组合它们。这不是最快或最有效的方式,但效果很好。
import plotnine as gg
import matplotlib.pyplot as plt
import matplotlib.image as img
import os
import numpy as np
def _check_plotnine_grid(plots_list, figsize):
if not type(plots_list) == list:
raise ValueError('Input plots_list is not a list')
if (not type(figsize) == tuple) or (not len(figsize) == 2):
raise ValueError('Input figsize should be a tuple of length 2')
def plotnine_grid(plots_list, row=None, col=1, height=None, width=None, dpi=500, ratio=None, pixels=10000,
figsize=(12, 8)):
"""
Create a grid of plotnine plots.
Function input
----------
plots_list : a list of plotnine.ggplots
row, col : numerics to indicate in how many rows and columns the plots should be ordered in the grid
defaults: row -> length of plots_list; col -> 1
height, width : the height and width of the individual subplots created by plotnine
can be automatically determined by a combination of dpi, ratio and pixels
dpi : the density of pixels in the image. Default: 500. Higher numbers could lead to crisper output,
depending on exact situation
ratio : the ratio of heigth to width in the output. Standard value is 1.5 x col/row.
Not used if height & width are given.
pixels : the total number of pixels used, default 10000. Not used if height & width are given.
figsize : tuple containing the size of the final output after making a grid, in pixels (default: (1200,800))
Function output
----------
A matplotlib figure that can be directly saved with output.savefig().
"""
_check_plotnine_grid(plots_list, figsize) # Check the input
# Assign values that have not been provided based on others. In the end, height and width should be provided.
if row is None:
row = len(plots_list)
if ratio is None:
ratio = 1.5 * col / row
if height is None and width is not None:
height = ratio * width
if height is not None and width is None:
width = height / ratio
if height is None and width is None:
area = pixels / dpi
width = np.sqrt(area/ratio)
height = ratio * width
# Do actual subplot creation and plot output.
i = 1
fig = plt.figure(figsize=figsize)
plt.autoscale(tight=True)
for image_sel in plots_list: # image_sel = plots_list[i]
image_sel.save('image' + str(i) + '.png', height=height, width=width, dpi=500, verbose=False)
fig.add_subplot(row, col, i)
plt.imshow(img.imread('image' + str(i) + '.png'), aspect='auto')
fig.tight_layout()
fig.get_axes()[i-1].axis('off')
i = i + 1
os.unlink('image' + str(i - 1) + '.png') # os.unlink is basically os.remove but in some cases quicker
fig.patch.set_visible(False)
return fig
关于python - plotnine - 在同一个图中有两个图并打印它的任何解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52331622/
我有一个关于订购条形图的问题。例如: http://pythonplot.com/#bar-counts (ggplot(mpg) + aes(x='manufacturer') + geom_bar
我不确定这是 plotnine 中的功能,但我想专门为值分配颜色。 例如,如果我正在创建一个散点图 colors = {True:'#a54f7e', False:'grey'} (ggplot(d
我想将 x 轴移动到绘图的顶部并手动填充颜色。但是,ggplot 中常用的方法在 plotnine 中不起作用。当我在 scale_x_continuous() 中提供 position='top'
我使用 plotnine 做了两个图在 python 中。我知道并不真正支持绘制子图( here )。我想知道是否有办法解决并在一个图中创建子图。 我想用 plotineplot.draw() 把它们
我一直在尝试使用 plotnine 绘制堆叠条形图。此图表示同一“类别”中的月末库存。 “子类别”是应该堆叠的内容。 我构建了一个从查询到数据库的 pandas 数据框。该查询检索日期范围内“类别”中
我有以下Pythonplotnine代码: ggplot(df) + geom_point(aes("Distance", "Force"), size=2) + geom_p
我想知道如何旋转 x 标签,大致如下: theme(axis.text.x = element_text(angle = 90, hjust = 1)) 在 ggplot 中? 谢谢。 最佳答案 Pl
我正在尝试使用 plotnine 来保存高分辨率的 png 图像。 使用测试数据集,这看起来像: from plotnine import * import pandas as pd import n
我想使用 plotnine 使用 brewer 定性调色板,但出现错误: ValueError: Invalid color map name 'Set1' for type 'Sequential'
我正在使用 plotnine生成 x 轴为 pandas.Timestamp 对象的散点图。 目前,x 刻度标签(例如“2017-07-01”)正在相互碰撞。我希望能够对刻度标签进行任意转换。如何更改
俗话说:“授人以鱼,一日不饿,授之以渔,终生不饿”。 对于我的一生,我无法解释 plotnine 文档。这根本不是对开发该软件包的优秀人员的批评 - 我真的很喜欢这个软件包,这就是我努力变得更好的原因
问题 :使用 python 库“plotnine”,我们可以绘制交互式 3D 表面图吗? 备份说明 我想做的是,在 python 环境下,使用 R 绘图语法创建交互式 3D 绘图,就像我们在 R 中使
我正在尝试调整 geom_text 标签,使它们不重叠。使用 nudge_x、nudge_y 和大小调整标签并没有给我一个非常令人满意的结果。我遇到了 adjust_text 包,但我没能在我的代码中
在许多图中,人们想要突出某些结果之间观察到的差异的统计显着性。可以使用 ggpubr() 或 geom.signif() 扩展在 R 中完成此任务。 我的意思的一个例子在这里(见带有星星的水平条):
我正在用 Python 构建一个模拟工具,它使用 plotnine 输出大量绘图。但是,对于我保存的每个单独的图,我都会收到以下错误消息: C:\Users\tarca\Anaconda3\lib\s
我是 R 的长期用户,最近过渡到 Python,并且我一直在尝试继承我使用 ggplot2 绘图的知识,因为它非常直观。 Plotnine据说是最像 ggplot2 的绘图库,我已经用它成功地重新创建
运行 jupyter notebook(python) 使用 Python Plotnine 库绘图 我在输出图形下方绘制了令人讨厌的“ggplot2: (number)”输出 通常您会在笔记本单元格
使用 stat_smooth(method="gls") 很容易在 plotnine 中获得数据的线性最佳拟合。但是,我不知道如何得出最佳拟合线或 R2 值的系数。 R 中的 Ggplot 有一个执行
尽管我得到了正确的图表(是的!),但每次运行 ggplot 时我也会收到此警告: FutureWarning: Attribute 'is_copy' is deprecated and will b
我们如何使用 Python 中的 Plotnine 库将 y 轴更改为百分比,而不是分数? 条形图的 MWE 如下: from plotnine import * from plotnine.data
我是一名优秀的程序员,十分优秀!