【问题标题】:Kivy and matplotlib?Kivy 和 matplotlib?
【发布时间】:2015-05-10 23:26:45
【问题描述】:

我只是想知道 matplotlib 是否与 kivy 1.9.0 兼容,如果可能的话,我该如何实现它?如果不支持,kivy 是否有与之非常相似的东西?

我希望能够在我的 kivy 应用程序中使用我的程序中的这个特定代码:

def printPieChart(table, column):
    if column == 6:
        columnList = table.iloc[:, -1:].values.T.ravel()
    else:
        columnList = table.iloc[:, (column - 7): (column - 6)].values.T.ravel()
    countedList = Counter(columnList)

    #set up the size of the pie chart
    fig = plt.figure(figsize=[10, 10])
    ax = fig.add_subplot(111)
    cmap = plt.cm.prism

    #input variables for pie function
    slices = [float(v) for v in countedList.values()]
    colors = cmap(np.linspace(0., 1., len(slices)))
    labels = [float(k) for k in countedList]
    columnHeaders = list(table.columns.values)

    #the pie chart
    pie_wedge_collection = ax.pie(slices, colors = colors, labels = labels, labeldistance = 1.05, autopct = '%1.1f%%')
    #get rid of the black outlines between the wedges and around the pie
    for pie_wedge in pie_wedge_collection[0]:
        pie_wedge.set_edgecolor('white')
    ax.set_title(columnHeaders[column + 1])

如果我想为 matplotlib 制作一个编译配方,我会按照这些思路来做吗?

#!/bin/bash

VERSION_matplotlib=${VERSION_matplotlib:-1.4.3}
DEPS_matplotlib=(numpy python dateutil pyparsing six linpng pytz freetype agg PyCXX qhull ttconv)
URL_matplotlib=http://pypi.python.org/packages/source/m/matplotlib/matplotlib-$VERSION_matplotlib.tar.gz
MD5_matplotlib=f43c20480a1673185afefc7d4848a1d2
BUILD_matplotlib=$BUILD_PATH/matplotlib/$(get_directory $URL_matplotlib)
RECIPE_matplotlib=$RECIPES_PATH/matplotlib

# function called for preparing source code if needed
# (you can apply patch etc here.)
function prebuild_matplotlib() {
    true
}

function shouldbuild_lxml() {
    if [ -d "$SITEPACKAGES_PATH/matplotlib" ]; then
        DO_BUILD=0
    fi
}

# function called to build the source code
function build_matplotlib() {
    cd $BUILD_matplotlib

    push_arm

    export CC="$CC -I$BUILD_numpy/"
    export LDFLAGS="-L$BUILD_numpy/numpy/.libs -L$BUILD_numpy/numpy/.libs -L$BUILD_numpy/.libs -L$BUILD_numpy/numpy -L$BUILD_numpy/numpy -L$BUILD_numpy/  $LDFLAGS"
    export LDSHARED="$LIBLINK"

    chmod +x $BUILD_numpy/numpy-config
    export PATH=$PATH:$BUILD_numpy
    #plus more for the other dependencies
    try $HOSTPYTHON setup.py build_ext -I$BUILD_matplotlib
    try find . -iname '*.pyx' -exec $CYTHON {} \;
    try $HOSTPYTHON setup.py build_ext -v
    try find build/lib.* -name "*.o" -exec $STRIP {} \;

    export PYTHONPATH=$BUILD_hostpython/Lib/site-packages
    try $BUILD_hostpython/hostpython setup.py install -O2 --root=$BUILD_PATH/python-install --install-lib=lib/python2.7/site-packages

    unset LDSHARED
    pop_arm
}

# function called after all the compile have been done
function postbuild_matplotlib() {
    true
}

【问题讨论】:

标签: python-2.7 matplotlib kivy


【解决方案1】:

你可以像往常一样从 kivy 脚本调用 matplotlib,但是 kivy 没有内置的方式来显示绘图 - 你必须让 matplotlib 来渲染它们(例如 png,或者你可以尝试 kivy's实验性 svg 支持,但可能有问题)然后将它们显示在 Image 小部件或类似部件中。

如果您想在 android 或 ios 上执行此操作,则需要 matplotlib 的编译配方,因为我认为我们还没有。我认为这应该不会太难,如果您有兴趣,我们很乐意讨论。

我们确实有一个 GSoC 学生正在努力为我们提供适当的 matplotlib 支持,所以在接下来的几个月里可能会有好消息。

【讨论】:

  • 感谢您的快速答复。虽然我很感兴趣,但我不太确定我是否能够像我想的那样跟随,因为我对一般编程相当陌生,更不用说 python 和 kivy。
  • 我问这个问题的原因是因为我想看看我是否可以用我为计算机科学 AS 学位最终项目制作的程序制作一个 android 应用程序。我会试试 kivy 的 svg 看看它是否适合我的想法。
  • @inclement 关于 matplotlib 支持的任何消息?这将是非常好的。
猜你喜欢
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2018-05-26
  • 1970-01-01
  • 2015-10-05
  • 2017-12-07
  • 1970-01-01
相关资源
最近更新 更多