python的數據可視化 graphviz pydot安裝配置(win10)


1、下載安裝graphviz-2.38.msi url: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:



    



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com