Python中的ggplot样式

时间:2014-03-20 19:28:25

标签: python matplotlib pandas ipython

当我查看plotting style in the Pandas documentation时,这些图看起来与默认图不同。它似乎模仿了ggplot"外观和感觉"。

seaborn's package相同。

如何加载该样式? (即使我不使用笔记本电脑?)

5 个答案:

答案 0 :(得分:25)

更新:如果您有matplotlib> = 1.4,则默认情况下会有一个新的style模块,其格式为ggplot。要激活它,请使用:

from matplotlib import pyplot as plt
plt.style.use('ggplot')

要查看所有可用的样式,您可以查看plt.style.available


同样,对于seaborn造型,你可以这样做:

plt.style.use('seaborn-white')

或者,您可以使用seaborn自己的机器来设置样式:

import seaborn as sns
sns.set()

set()函数有更多选项可供选择特定样式(请参阅docs)。请注意,seaborn之前在导入时会自动执行上述操作,但使用最新版本(> = 0.8)时不再是这种情况。


如果你真的想在Python中使用类似ggplot的语法(而不仅仅是样式),请看一下plotnine包,它是Python中图形实现的语法,语法非常相似到R的ggplot2。


注意:提到pd.options.display.mpl_style = 'default' 时提到的旧答案。然而,大熊猫不赞成使用plt.style(..)来支持matplotlib的样式,同时这个功能甚至从pandas中删除。

答案 1 :(得分:5)

对于python-ggplot中的主题,您可以将它们与其他图一起使用:

from ggplot import theme_gray
theme = theme_gray()
with mpl.rc_context():
    mpl.rcParams.update(theme.get_rcParams())

    # plotting commands here

    for ax in plt.gcf().axes:
        theme.post_plot_callback(ax)

答案 2 :(得分:3)

如果您需要查看可用的样式:

import matplotlib.pyplot as plt

print(plt.style.available)

这将打印可用的样式。

并使用此链接选择您喜欢的风格

https://tonysyu.github.io/raw_content/matplotlib-style-gallery/gallery.html

答案 3 :(得分:1)

Jan Katins的回答很好,但是python-ggplot项目似乎已经无效。 plotnine项目更加发达,并支持类似但表面上不同的解决方案:

from plotnine import theme_bw
import matplotlib as mpl
theme = theme_bw()

with mpl.rc_context():
    mpl.rcParams.update(theme.rcParams)

答案 4 :(得分:0)

虽然我认为joris answer是一个更好的解决方案,因为您正在使用Pandas,但应该提到Matplotlib可以设置为通过发出命令var a = 1; function add() { var fContent = document.getElementById('1'); var sContent = document.getElementById('2'); if (a <= 10) { a++; var objTo = document.getElementById('m'); var divtest = document.createElement("div"); divtest.innerHTML = (sContent.innerHTML + a + fContent.innerHTML); alert(divtest.innerHTML); objTo.appendChild(divtest); } } 来模仿ggplot。

请参阅Matplotlib gallery

中的示例