2016-04-17 2 views
0

Так что я пытаюсь построить палитру на python, не совсем уверен, как это сделать. На данный момент мне все равно, какие цвета используются, я просто хотел бы, чтобы они были в сетке 10x10. Я играл с matplotlib.pyplot.hist2d, но я недостаточно разбираюсь в аргументах или заговорах вообще, чтобы заставить его работать.Пытается построить палитру в python

Это то, что я хочу, чтобы это выглядело как: http://i.stack.imgur.com/zKEFm.png

Любая помощь будет принята с благодарностью!

Вот мои значения:

х = [1000,0, 1500,0, 2000,0, 2500,0, 3000,0, 3500,0, 4000,0, 4500,0, 5000,0, 5500,0]

у = [50,0, 100,0, 150,0, 200,0 , 250.0, 300.0, 350.0, 400.0, 450.0, 500.0]

г = [[+4881,8642105816871, 10911,715059458633, +14155,013920191856, 15445,716752715813, +16013,555045427016, 15930,210275343226, 14914,871694262614, 13066,110673589264, +10759,038539701312, +8463,0016244336093], [1974,871155086661, 1145,8564488717275, +360,21552184520687, 93,26083185814899 , 21,427562046024793, 7.0515082675648033, 8,94905 23628452756, 14,879083651382828, +21,096831336382142, +26,546911264223507], [1634,3004731594849, +596,47348127936391, +112,49120675840454, +15,812850921622774, +4,0543288410416025, +9,0618094371920641, +16,389066614461047, 22,915048528916472, +28,13970763744614, +32,19301414581065], [1986,732401772239, +799,55302793978888, +160,97797226074397, 24,950029150759416, +2,9740612607771544, +5,1831654930427353, +11,868454452741116, 18,423909277895582, +23,871268732800026, +28,176932672588872], [2601,7028764095298, +1395,8441541583775, 350,7791306410262, 76,264494509924447, 12,917045956205232, +2,0917899539090037, +4,7536763606740866, +10,386333025075864, 15,994635925645284, +20,802037330766186], [+3293,2621749740892, +2468,8337536368813, +794,89657520857122, +231,80120180328421, 69,115519256908826, 22,56546362231742, 11,68385698697284, 12,181871134288121, +16,036344120838468, 20,480043889445149], [3946,9123317902149, 4077.9829695428052, 1678.9233197571568, 607.05248741635501, 240.16635849955915, 112.17393601200131, 66. 792078445172521, 51,930124965393659, +48,76103688333918, +50,00623950373992], [+4502,107788994359, +6161,1060688041271, +3218,1802555799272, +1379,0348763810446, +640,22321406877404, +349,14793361033742, +228,99173439562361, +178,00469532465459, +156,84445929086453, +148,55111237018477], [+4948,2311747056465, 8553,3089397606091, +5603,5794468290587, +2781,2587849125666, 1439,9934016139214, +853,84661084199092, +589,64424718785426, +466,19185775513267, +405,81332964558175, +375,96900504309684], [5292,3370996081712, 11038,242790006936, 8921,6574107649831, 5087,0863086276313, +2867,5539374519794, 1796,784239152586, 1281,1061782196334, +1023,8418898637763, +890,53738452759285, 817,7523115877392]]

ответ

2
x = [1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0, 5500.0] 

y = [50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0] 

z = [[4881.8642105816871, 10911.715059458633, 14155.013920191856, 15445.716752715813, 16013.555045427016, 15930.210275343226, 14914.871694262614, 13066.110673589264, 10759.038539701312, 8463.0016244336093], [1974.871155086661, 1145.8564488717275, 360.21552184520687, 93.26083185814899, 21.427562046024793, 7.0515082675648033, 8.9490523628452756, 14.879083651382828, 21.096831336382142, 26.546911264223507], [1634.3004731594849, 596.47348127936391, 112.49120675840454, 15.812850921622774, 4.0543288410416025, 9.0618094371920641, 16.389066614461047, 22.915048528916472, 28.13970763744614, 32.19301414581065], [1986.732401772239, 799.55302793978888, 160.97797226074397, 24.950029150759416, 2.9740612607771544, 5.1831654930427353, 11.868454452741116, 18.423909277895582, 23.871268732800026, 28.176932672588872], [2601.7028764095298, 1395.8441541583775, 350.7791306410262, 76.264494509924447, 12.917045956205232, 2.0917899539090037, 4.7536763606740866, 10.386333025075864, 15.994635925645284, 20.802037330766186], [3293.2621749740892, 2468.8337536368813, 794.89657520857122, 231.80120180328421, 69.115519256908826, 22.56546362231742, 11.68385698697284, 12.181871134288121, 16.036344120838468, 20.480043889445149], [3946.9123317902149, 4077.9829695428052, 1678.9233197571568, 607.05248741635501, 240.16635849955915, 112.17393601200131, 66.792078445172521, 51.930124965393659, 48.76103688333918, 50.00623950373992], [4502.107788994359, 6161.1060688041271, 3218.1802555799272, 1379.0348763810446, 640.22321406877404, 349.14793361033742, 228.99173439562361, 178.00469532465459, 156.84445929086453, 148.55111237018477], [4948.2311747056465, 8553.3089397606091, 5603.5794468290587, 2781.2587849125666, 1439.9934016139214, 853.84661084199092, 589.64424718785426, 466.19185775513267, 405.81332964558175, 375.96900504309684], [5292.3370996081712, 11038.242790006936, 8921.6574107649831, 5087.0863086276313, 2867.5539374519794, 1796.784239152586, 1281.1061782196334, 1023.8418898637763, 890.53738452759285, 817.7523115877392]] 

import numpy as np 
import matplotlib.pyplot as p 
%matplotlib inline 
p.imshow(z,interpolation='none',cmap=p.cm.jet,origin='lower') 
# many other colormaps can be seen here: http://matplotlib.org/examples/color/colormaps_reference.html 
p.colorbar() 

enter image description here

Обратите внимание, что команда inline нужна только для Ipython. За пределами Ipython вам может понадобиться p.show().

+0

Вы знаете, как сделать логарифмическую окраску? Я бы хотел увидеть большую контрастность в области, которая сейчас очень синяя. – Spuds

+0

Это действительно очень желательно (особенно в спектрах, т. Е. 2D БПФ) и видеть пол шума.Я просто беру журнал данных и строю лог-файл рядом с ним. Ваш точный вопрос возник в другом месте (http://stackoverflow.com/questions/13478460/logarithmic-yscale-in-imshow), но я не могу найти ответ, который не будет явно записывать данные. – roadrunner66

0

roadrunner66 дал ответ, возможно, я могу быть более точным с частью matplotlib.

Я думаю, что это лучше сценарий этой части, как это:

x = [1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0, 5500.0] 

y = [50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0] 

z = [[4881.8642105816871, 10911.715059458633, 14155.013920191856, 15445.716752715813, 16013.555045427016, 15930.210275343226, 14914.871694262614, 13066.110673589264, 10759.038539701312, 8463.0016244336093], [1974.871155086661, 1145.8564488717275, 360.21552184520687, 93.26083185814899, 21.427562046024793, 7.0515082675648033, 8.9490523628452756, 14.879083651382828, 21.096831336382142, 26.546911264223507], [1634.3004731594849, 596.47348127936391, 112.49120675840454, 15.812850921622774, 4.0543288410416025, 9.0618094371920641, 16.389066614461047, 22.915048528916472, 28.13970763744614, 32.19301414581065], [1986.732401772239, 799.55302793978888, 160.97797226074397, 24.950029150759416, 2.9740612607771544, 5.1831654930427353, 11.868454452741116, 18.423909277895582, 23.871268732800026, 28.176932672588872], [2601.7028764095298, 1395.8441541583775, 350.7791306410262, 76.264494509924447, 12.917045956205232, 2.0917899539090037, 4.7536763606740866, 10.386333025075864, 15.994635925645284, 20.802037330766186], [3293.2621749740892, 2468.8337536368813, 794.89657520857122, 231.80120180328421, 69.115519256908826, 22.56546362231742, 11.68385698697284, 12.181871134288121, 16.036344120838468, 20.480043889445149], [3946.9123317902149, 4077.9829695428052, 1678.9233197571568, 607.05248741635501, 240.16635849955915, 112.17393601200131, 66.792078445172521, 51.930124965393659, 48.76103688333918, 50.00623950373992], [4502.107788994359, 6161.1060688041271, 3218.1802555799272, 1379.0348763810446, 640.22321406877404, 349.14793361033742, 228.99173439562361, 178.00469532465459, 156.84445929086453, 148.55111237018477], [4948.2311747056465, 8553.3089397606091, 5603.5794468290587, 2781.2587849125666, 1439.9934016139214, 853.84661084199092, 589.64424718785426, 466.19185775513267, 405.81332964558175, 375.96900504309684], [5292.3370996081712, 11038.242790006936, 8921.6574107649831, 5087.0863086276313, 2867.5539374519794, 1796.784239152586, 1281.1061782196334, 1023.8418898637763, 890.53738452759285, 817.7523115877392]] 

import numpy as np 
import matplotlib.pyplot as p 

fig1, ax1 = p.figure(1) 
plot = ax1.imshow(z,interpolation='none',cmap=p.cm.jet,origin='lower') 
fig1.colorbar(plot, ax=ax1) 
ax1.set_xlabel('label in x') 
ax1.set_ylabel('label in y') 
ax1.set_title('title') 
p.show() 

В этом смысле, это очень ясно;) В основном, если вам нужно построить другие тепловые карты;)