1. 程式人生 > >python的資料視覺化 graphviz pydot安裝配置(win10)

python的資料視覺化 graphviz pydot安裝配置(win10)

1、下載安裝http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.msi

要是原連結下載不了,可以下我這個:http://download.csdn.net/detail/shouwangzhelv/9492517

2、pip install pydot

我這裡安裝完直接就可以import,沒有錯誤。據說有的報錯:不能匯入dot_parser,這個可以直接安裝:pip install -U pydot pyparsing==1.5.7

3、為了避免出錯,我添加了系統路徑:C:\Program Files (x86)\Graphviz2.38\bin 和 C:\Program Files (x86)\Graphviz2.38

然而還是出錯了,說說問題及解決吧:

1、pywintypes.error: (2, 'RegOpenKeyEx', ...) 應該是沒找到登錄檔,直接修改模組原始檔讓它找到就好了。

解決:修改Python2.7\Lib\site-packages\pydot.py,這是修改完的了,原檔案沒儲存。

其實這個檔案前面原來有method1和2,2是給linux用的(你的檔案裡應該有這些內容),對比了一下method1和3,發現3好點,其實不管method幾,主要是為了獲得path和progs,就找一種合適的方法能正確獲得這兩就好了。選用method3,作了如下修改,一切都正常了。。其實就是,不用他自動獲取path了,直接給他一個path就好了,然後path對了, progs = __find_executables(path),progs也就對了。

def find_graphviz():

    # Method 3 (Windows only)

    #

    if os.sys.platform == 'win32':

        # Try and work out the equivalent of "C:\Program Files" on this

        # machine (might be on drive D:, or in a different language)

        #

if False:#os.environ.has_key('PROGRAMFILES'):

            # Note, we could also use the win32api to get this

            # information, but win32api may not be installed.

            path = os.path.join(os.environ['PROGRAMFILES'], 'ATT', 'GraphViz', 'bin')

        else:

            #Just in case, try the default...

path = r"C:\Program Files (x86)\Graphviz2.38\bin"

        progs = __find_executables(path)

        if progs is not None :

            #print "Used default install location"

            return progs

    for path in (

        '/usr/bin', '/usr/local/bin',

        '/opt/bin', '/sw/bin', '/usr/share',

        '/Applications/Graphviz.app/Contents/MacOS/' ):

        progs = __find_executables(path)

        if progs is not None :

            #print "Used path"

            return progs

    # Failed to find GraphViz

    #

    return None

問題2:pydot.InvocationException: GraphViz's executables not found

跟上面一個問題,按上面改了這個就不會出現了。

至此,graphviz和pydot就安裝完了。

下面說說用法,畫個決策樹的圖(預設你已經裝了sklearn模組):

python原始碼:

#encoding:utf8
#Author:lvpengbin
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from sklearn.datasets import load_iris
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot
iris = load_iris()#載入資料集
clf = tree.DecisionTreeClassifier()#演算法模型
clf = clf.fit(iris.data, iris.target)#模型訓練
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")#寫入pdf
iris.pdf: