python可視化之顏色映射詳解
本文主要介紹一下在學(xué)習(xí)可視化過程里遇到的一些情況
比如cmap=plt.cm.Blues
的映射
import matplotlib.pyplot as plt from random_walk import RandomWalk # Keep making new walks, as long as the program is active. while True: # Make a random walk. rw = RandomWalk(50_000) rw.fill_walk() # Plot the points in the walk. plt.style.use('classic') fig, ax = plt.subplots(figsize=(15, 9)) point_numbers = range(rw.num_points) y_values=rw.y_values ax.scatter(rw.x_values, rw.y_values, c=y_values, cmap=plt.cm.Blues, edgecolors='none', s=1) # Emphasize the first and last points. ax.scatter(0, 0, c='green', edgecolors='none', s=100) ax.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100) # Remove the axes. ax.get_xaxis().set_visible(False) ax.get_yaxis().set_visible(False) plt.show() keep_running = input("Make another walk? (y/n): ") if keep_running == 'n': break
ax.scatter(rw.x_values, rw.y_values, c=range(50000), cmap=plt.cm.Blues,
這里的c和cmap是一起使用的
c是一個列表,列表里面的數(shù)值不一定要按照大小順序排列,但是數(shù)值的大小對應(yīng)著顏色映射,數(shù)值本身越小,顏色越淺。而數(shù)值的位置對應(yīng)著點的順序,列表里面的第一個數(shù)(不管大?。?,對應(yīng)著由x_values和y_values產(chǎn)生的點
這里的y_values是由隨機漫步產(chǎn)生的,第一個點到最后一個點是連續(xù)變化的,這種隨機漫步會導(dǎo)致,第一個點到最后一個點的位置規(guī)律是有跡可循的(比如y值是從小到大變化的),局部看上去是隨機的,但是趨勢不是,趨勢是有規(guī)律的。
所以列表里面的數(shù)值大小不固定,可能是從小到大,也可能是從大到小,例如下面這里是從小到大排列的。第一個點對應(yīng)的數(shù)值小,所以顏色淺,反之最后一個點數(shù)值大,顏色深。第一個點偏上,最后一個點偏下,說明y應(yīng)該是逐漸變小的,那么y_values應(yīng)該是從大到小,所以對應(yīng)的點的顏色就是從深到淺。也就是說點的位置變化(如y值)有規(guī)律,那么顏色的變化也是有規(guī)律的。因為在使用c=y_values的時候,是根據(jù)點的y值來的。
總之,關(guān)鍵字實參c=point_numbers的列表里面數(shù)字的位置對應(yīng)點的順序,而數(shù)值的大小,對應(yīng)顏色深淺。
反之,如果c=y_values,第一個點到最后一個點的y值是從低到高的話,那么顏色是由淺到深的。
這里的c=range(50000)的時候,數(shù)據(jù)是從小到大排列的,所以第一個點到最后一個點顏色從淺到深。點的位置變化有跡可循,顏色變化也有跡可循,所以整體看起來會比較有規(guī)律。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。