亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 matplotlib 代理藝術家向平行坐標圖添加圖例

使用 matplotlib 代理藝術家向平行坐標圖添加圖例

達令說 2021-09-28 15:47:41
我很難將圖例添加到matplotlib.pyplot,我的目標是使平行坐標圖類似于那個由于我的用例類似,我使用了提供的解決方案,除了我只有 2 個觀察值,每組 1 個并且我添加了 plt.legend(axes,style),以便創建圖例,但是當我運行代碼時,我收到以下警告并且沒有傳奇。:\Python27\lib\site-packages\matplotlib\legend.py:634: UserWarning: Legend 不支持實例??梢允褂么硭囆g家來代替。請參閱:http : //matplotlib.org/users/legend_guide.html#using-proxy-artist "#using-proxy-artist".format(orig_handle)我試圖通過文檔但找不到解決方案。我發現下面列出的另一個stackoverflow帖子,但仍然不太清楚圖例的使用,特別是在傳遞給圖例函數之前如何解包子圖。任何人都可以請解釋它是如何工作的。#!/usr/bin/pythonimport matplotlib.pyplot as pltimport matplotlib.ticker as tickerdef parallel_coordinates(data_sets, style=None):    dims = len(data_sets[0])    x    = range(dims)    fig, axes = plt.subplots(1, dims-1, sharey=False)    if style is None:        style = ['r-']*len(data_sets)    # Calculate the limits on the data    min_max_range = list()    for m in zip(*data_sets):        mn = min(m)        mx = max(m)        if mn == mx:            mn -= 0.5            mx = mn + 1.        r  = float(mx - mn)        min_max_range.append((mn, mx, r))    # Normalize the data sets    norm_data_sets = list()    for ds in data_sets:        nds = [(value - min_max_range[dimension][0]) /                 min_max_range[dimension][2]                 for dimension,value in enumerate(ds)]        norm_data_sets.append(nds)    data_sets = norm_data_sets    # Plot the datasets on all the subplots    for i, ax in enumerate(axes):        for dsi, d in enumerate(data_sets):            ax.plot(x, d, style[dsi])        ax.set_xlim([x[i], x[i+1]])    # Set the x axis ticks     for dimension, (axx,xx) in enumerate(zip(axes, x[:-1])):        axx.xaxis.set_major_locator(ticker.FixedLocator([xx]))        ticks = len(axx.get_yticklabels())        labels = list()        step = min_max_range[dimension][2] / (ticks - 1)        mn   = min_max_range[dimension][0]        for i in xrange(ticks):            v = mn + i*step            labels.append('%4.2f' % v)        axx.set_yticklabels(labels)
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 257 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號