Вопросы с тегами [matplotlib]

1

голосов
3

ответ
1.6k

Просмотры

Plot some numbers in x axis

My question is related to the figure format generated using the matplotlib library. So, in the x axis, I have the integers from 1 to 100, but in my code I plot just the data related to some numbers (e.g 1,5,77,86,97). At the end, my code shows me a figure with x axis from 1 to 100. How can I show just the needed numbers (1,5,77,86,97)? My code is shown below: def Plot(self,x,y, steps, nb,bool): if(bool == False): labelfont = { 'family' : 'sans-serif', # (cursive, fantasy, monospace, serif) 'color' : 'black', # html hex or colour name 'weight' : 'normal', # (normal, bold, bolder, lighter) 'size' : 20, # default value:12 } titlefont = { 'family' : 'serif', 'color' : 'black', 'weight' : 'bold', 'size' : 20, } x = np.array(x) y = np.array(y) pylab.plot(x, y, 'darkmagenta', # colour linestyle='', # line style linewidth=10, # line width marker = '+', mew=6, ms=12) axes = plt.gca() axes.grid(True) axes.set_xlim([1, x_max) # x-axis bounds axes.set_ylim([1, nb]) # y-axis bounds pylab.title('Title' , fontdict=titlefont) pylab.xlabel('x', fontdict=labelfont) pylab.ylabel('y', fontdict=labelfont) pylab.subplots_adjust(left=0.15) # prevents overlapping of the y label else: test_steps.insert(0,"") pylab.yticks(nb, steps,rotation=0, size=10) pylab.margins(0.2) pylab.xticks(np.arange(0, x_max, 1.0),rotation=90, size=10) # Tweak spacing to prevent clipping of tick-labels pylab.subplots_adjust(bottom=0.15) F = pylab.gcf() DefaultSize = F.get_size_inches() if x_max < 100 and len(steps) < 100: Xx = 2.5 Yy = 2.5 elif x_max < 200 and len(steps) < 200: Xx = 5 Yy = 5 elif ix_max < 300 and len(steps) < 300: Xx = 8 Yy = 8 elif x_max < 400 and steps < 400: Xx = 10 Yy = 10 elif x_max < 500 and steps < 500: Xx = 12 Yy = 12 else: Xx = 15 Yy = 15 F.set_size_inches((DefaultSize[0]*Xx , DefaultSize[1]*Yy)) F.savefig('Out.png', bbox_inches='tight') pylab.close(F)
Stack Over
-2

голосов
3

ответ
25

Просмотры

Удалить элементы из массива Numpy меньше, чем 1

Я пытаюсь построить (50 миллионов значений) большие объемы данных, но я получаю MemoryError. Теперь я пытаюсь очистить свой набор данных из избыточных значений. В моем случае, все эти значения ниже 1 и выше -1. Одна вещь, чтобы иметь в виду, что сюжет должен выглядеть так же, как оригинал, но без шума. Есть ли лучший способ сделать это, чем с помощью петли или списковых? Оригинальный сюжет: Изменить: Спасибо за ответы. Если я использую предлагаемый подход: датый = датый [(- 1> DATY) | (Датый> 1)] Это приводит к следующим образом:
1

голосов
2

ответ
786

Просмотры

Как добавить опорную линию к pyplot линии диаграммы?

У меня есть dataframe, для которых я нарисовал линейную диаграмму и добавил ссылочный номер, используя код, приведенный ниже plt.figure (figsize = (15,5)) plt.title ( «Parento анализ», FontSize = 20, цвет = «синего ') plt.xlabel (' продукта», размер шрифта = 14) plt.ylabel ( 'Количество продаж', размер шрифта = 14) plt.plot (parento [ 'Cum_Product%'], parento [ 'Cum_Sales%'], ширины линии = 3,0 ) plt.plot ([10, 10], [0, 80], 'K-', Lw = 1, тире = [2, 2]) plt.plot ([0, 10], [80, 80], 'K-', ЛЕ = 1, тир = [2, 2]) plt.show () Мое решение кажется немного долго для меня. Есть ли другой короткий путь, с которым я могу сделать контрольную линию (10,80)?
Moses Soleman
1

голосов
2

ответ
279

Просмотры

Plotting Time and float value using python matplotlib from File

Я имею текстовый файл со временем и значение с плавающей точкой. Я слышал, что можно построить эти две колонки с помощью Matplotlib. Искал подобные темы, но не мог сделать это происходит. Мой код и импорт математике импорта DateTime импорта Matplotlib Data являются- импорт matplotlib.pyplot в PLT импорта CSV с открытым ( 'MaxMin.txt', 'г'), как f_input: csv_input = csv.reader (f_input, Разделитель =»», skipinitialspace = True) х = [] Y = [] для перевалов в csv_input: х = matplotlib.dates.date2num (смещ_по_столбцы [0]) у = [поплавок (смещ_по_столбцы [1])] # именование оси х plt.xlabel (» Real-Time «) # именования у оси plt.ylabel (» Ускорение (м / с2) «) # давая название на мой график plt.title (» Акселерометр чтение графа! ') # откладывая точки plt.plot (х , у) # украсит рентгеновские этикетки plt.gcf (). autofmt_xdate () # функция, чтобы показать участок plt.show () и часть данных в MaxMin.txt 23: 28: 30.137 10.7695982757 23: 28: 30.161 10.4071263594 23: 28: 30.187 9.23969855461 23: 28: 30,212 +9,21066485657 23:28 : 30,238 +9,25117645762 23: 28: 30,262 +9,59227680741 23: 28: 30,287 9,9773536301 23: 28: 30,312 +10,0128275058 23: 28: 30,337 +9,73353441664 23: 28: 30,361 +9,75064993988 23: 28: 30,387 9,717339267 23: 28: 30,412 +9,72736788911 23: 28: 30,440 +9,62451269364 Я новичок в Python и Python 2.7.15 в окнах 10 Pro (64 бит). Я установил NumPy, SciPy scikit учиться уже. Пожалуйста помоги. Окончательный выход Graph из полного набора данных. Благодаря @ ImportanceOfBeingErnest 238 +9,25117645762 23: 28: 30,262 +9,59227680741 23: 28: 30,287 9,9773536301 23: 28: 30,312 +10,0128275058 23: 28: 30,337 +9,73353441664 23: 28: 30,361 +9,75064993988 23: 28: 30,387 9,717339267 23: 28: 30,412 +9,72736788911 23: 28: 30,440 +9,62451269364 Я новичок в Python и Python 2.7.15 в окнах 10 Pro (64 бит). Я установил NumPy, SciPy scikit учиться уже. Пожалуйста помоги. Окончательный выход Graph из полного набора данных. Благодаря @ ImportanceOfBeingErnest 238 +9,25117645762 23: 28: 30,262 +9,59227680741 23: 28: 30,287 9,9773536301 23: 28: 30,312 +10,0128275058 23: 28: 30,337 +9,73353441664 23: 28: 30,361 +9,75064993988 23: 28: 30,387 9,717339267 23: 28: 30,412 +9,72736788911 23: 28: 30,440 +9,62451269364 Я новичок в Python и Python 2.7.15 в окнах 10 Pro (64 бит). Я установил NumPy, SciPy scikit учиться уже. Пожалуйста помоги. Окончательный выход Graph из полного набора данных. Благодаря @ ImportanceOfBeingErnest
Pratik
1

голосов
1

ответ
36

Просмотры

Как указать на графике, где запущена линия?

Я хотел бы указать начальную точку на графике - где запущена линия. Это мой код импорта NumPy в нп от scipy.integrate импорта odeint из Numpy импорта синус, косинус, пи, массив импорта Matplotlib из Matplotlib импорта rcParams импорта matplotlib.pyplot в PLT из pylab импорта рисунка, топоры, название, показать импорт xlsxwriter Защиту DERIV (г, т): л = 0,3 #unextended длина пружины в мм = 1 #mass из боба, в кг к = 1 #spring постоянной, в Нм ^ -1 г = 9,81 #gravitational ускорение, в мс ^ -2 х, у, dxdt, dydt = г dx2dt2 = (L + х) * (dydt) ** 2 - к / т * х + г * соз (у) dy2dt2 = (-g * Sin (у) - 2 * (dxdt) * (dydt)) / (L + х) #equations возвращения движения np.array ([dxdt, dydt, dx2dt2, dy2dt2]) = INIT массив ([0,3, р / 2, 0,0, 2]) #initial условия (х, у, xdot, ydot) Время = np.linspace (0, 100, 10000) #time интервалы (начало, конец, число интервалов) Золь = odeint (DERIV, первонач, времени) #solving уравнения движения х = золь [: 0] у = золь [: 1] л = 0,3 #unextended длина пружины в Мч = (L + х) * Sin (у) и = - (L + х) * соз (у) #converting х и у в декартовы координаты plt.plot (п, у) plt.xlabel ( '$ п $ (т)') plt.ylabel ( '$ U $ (м)') plt.title ( '$ N $ по сравнению с $ U $ для' г «$ \ theta_0 = \ гидроразрыва {\ Pi} {2} + 0,001 $») plt.show (), который генерирует этот график: Тем не менее, остается неясным, где линия фактически началась (где-то в верхнем правом углу, по-моему, рядом, где она закончилась). Есть ли какой-нибудь способ, которым я могу добавить яркие точки к начальной точке не только конкретному этому графы (т.е. так что я могу воспроизвести в других графиках с различными условиями)? Спасибо!
Charlotte Noxon
0

голосов
0

ответ
4

Просмотры

Заговор torch.tensor в Pytorch: Invalid ошибка измерения

У меня есть объект torch.Tensor и это имеет форму torch.Size ([9, 1, 28, 28])). Я пытался что-то вроде для цифры в диапазоне (10):. Similar_img = create_interpolates (/ * что-то ... * /) plt.figure (figsize = (10,10)) plt.imshow (similar_img.detach () NumPy () ) Но это дает мне: TypeError: Неправильные размеры для данных изображения Любой помощи?
Dawn17
1

голосов
1

ответ
64

Просмотры

Currently Animating Scatter Plot With Static Frames. Is there a way to animate over a moving window instead?

У меня есть массив массивов с форматом [2000] [200,3], что я создаю анимированный график рассеяния. 2000 количество кадров, а внутренние массивы имеют формат [длину, [х, у, Интно]], которые являются точками разбрасывать. Таким образом, для примера один кадр будет выглядеть следующим образом: Array [0] = np.array ([x_1, y_1, I_1], [x_2, y_2, I_2], ..., [x_200, y_200, I_200]) Таким образом, мы есть 2000 кадров 200 точек каждый. Эти точки произвольно усечены все 200 и на самом деле являются последовательными. Так что я могу посильно изменить массив в: Array = np.array (np.array ([x_1, y_1, I_1], [x_2, y_2, I_2], ..., [x_400000, y_400000, I_400000]), который не проблема для меня. Я знаю, как это сделать. Мой вопрос заключается в том, как можно анимировать график рассеяния, который адаптивно перемещается через точку вместо отображения 200 точек бункеров? Приведенный ниже код позволяет мне построить анимированный график рассеяния с кадрами (1- 200,201-400, 401-600, и т.д.), но результат не очень гладко к глазу. В идеале я хотел бы что-то, что обновляет в каждой точке или, по крайней мере, каждые 10 очков, так, например, кадров (1-200,2-201,3-202 и т.д.) или (1-200,11-210,21-200 и т.д. ) numframes = Len (массив) plt.ion () рис, ах = plt.subplots () норма = plt.Normalize (Массив [:] [:, 2] .min (), Array [:] [:, 2] .max ()) подкожно = ax.scatter (Array [0] [:, 0], массив [0] [:, 1], с = Array [0] [:, 2], CMAP = cm.hot, с = 5) plt.xlim (-40,40) plt.ylim (0200) plt.draw () для г в диапазоне (numframes): sc.set_offsets (np.c_ [Массив [I] [:, 0], массив [I] [:, 1]]) sc.set_array (Массив [I] [:, 2]) для печати (я) plt.pause (0.1) plt.ioff () plt.show ()
Ian Campbell Moore
0

голосов
0

ответ
3

Просмотры

Анализ остаточной нормальный вероятностный график

Это очень простой вопрос. Я хочу, чтобы проанализировать стандартизированные остатки модели линейной регрессии. Так что я сделал остаточный нормальный вероятностный график следующим образом: модель = линейная регрессия (fit_intercept = True) х = df.temp х = np.asarray (х) .reshape (-1, 1) model.fit (х, df.RH) y_predicted = model.predict (х) = остаточный df.RH - y_predicted остаточный = (остаточный - np.mean (остаточный)) / np.std (остаточный) рис, ах = plt.subplots (figsize = (5,5)) рис = plt.title ( «Нормальный вероятностный график») рис = sp.stats.probplot (остаточный, участок = ах, подходит = False, «норма» Dist =) Есть некоторые выпадающие в этом участке. Тогда я просто удалить все выбросы от исходных данных и имели те же результаты. Так как я могу интерпретировать этот сюжет? Могу ли я считать, что точки, как выбросы? Или я могу предположить, что остатки приблизительно линейны поддерживая условие, что условия ошибки нормально распределены?
demo
1

голосов
0

ответ
168

Просмотры

Панды сюжет таблица не черчения всех столбцов

Я пытаюсь построить dataframe, которая представлена ​​в виде изображения. Защиту count_of_each_categories (сам, y_train = нет, y_test = нет, technology_segment = None): "" ": y_train пар:: пары y_test:: возвращение: """ df_train = pd.DataFrame () df_train [technology_segment] = y_train df_test = pd.DataFrame () df_train [ 'FREQ'] = df_train [technology_segment] .value_counts () DF = pd.DataFrame () DF [ 'FREQ'] = df_train [technology_segment] .value_counts () ах = plt.subplot (111, frame_on = False) # никакого видимого кадра ax.xaxis.set_visible (False) # не скрывает центр оси х ax.yaxis.set_visible (False) # скрыть ось у # df.plot () таблица (ах, DF, cellLoc =» », rowLoc = 'центр', LOC = 'сверху') #, где ДФ вашего кадра данных plt.show () PLT. savefig (г "/ Users / Nitesh / OneDrive / Работа / GE_Python_Workspace / ClassifierApproaches / Excel Документы /" г "FinTech / mytable.png") Я не в состоянии видеть столбец технологии, это выглядит как изображение обрезается. Я хочу, чтобы показать все столбцы, присутствующие в dataframe. У меня есть 2 колонки в нем. Я пытаюсь украсить его.
Nitesh kumar
1

голосов
0

ответ
50

Просмотры

Как сделать сюжет велосиметра стиля в Python?

Это то, что я иду: есть велосиметр ли что-нибудь, скажем, в Matplotlib, который может достичь этого? Я посмотрел на Matplotlib галерею, но не смогли найти ничего, что выглядит как он.
marco_gorelli
1

голосов
0

ответ
47

Просмотры

питон Matplotlib OHLC ошибка

Цель этого кода для построения CSV-файл, который содержит 7 столбцов [ «Дата», «Время», «Открыть», «High», «Low», «Закрыть», «Объем»] в свечной график OHLC. Я начал с разбора дата время как одну вещь, то определив его как индекс. Вот код: импорт панды как PD импорт matplotlib.pyplot как PLT из matplotlib.finance импорта candlestick_ohlc импорта matplotlib.dates как mdates COLUMN_NAMES = [ 'Дата', 'Time', 'Open', 'High', 'Low', 'Закрыть', 'Volume'] DF = pd.read_csv (г "E: \ Бизнес \ Акции \ AUDUSD60.csv", имена = COLUMN_NAMES, parse_dates = { 'DateTime': [ 'Дата', 'Time']}, index_col = [0], заголовок = None, low_memory = False) f1 = plt.subplot2grid ((6, 4), (1, 0),
Sayed Gouda
1

голосов
0

ответ
197

Просмотры

Matplotlib draw function not working

I'm trying to use matplotlib.pyplot to view a video as I process the frames. The code below displays a plot window, but the images are never drawn. import cv2 import matplotlib.pyplot as plt class Viewer: def __init__(self, video_filename): self.cap = cv2.VideoCapture(video_filename) self.ax1 = plt.subplot(1, 2, 1) self.ax2 = plt.subplot(1, 2, 2) # Grab the first frame. frame = self.grabframe() self.im1 = self.ax1.imshow(frame) self.im2 = self.ax2.imshow(frame) def grabframe(self): ret, frame = self.cap.read() if ret: return frame else: print('[ERROR] grabframe failed') return self.grabframe() def update(self, frame): """Update the display.""" print('[INFO] updating...') self.im1.set_data(frame) self.im2.set_data(frame) plt.draw() def main(): """Run it.""" cli = argparse.ArgumentParser() cli.add_argument('-i', '--input', type=str, required=True) args = cli.parse_args() viewer = Viewer(args.input) while True: viewer.update(viewer.grabframe()) if __name__ == '__main__': plt.ion() plt.show() main() The update function is definitely being called and I am sure that the frames contain image data. I tried explicitly creating a figure and adding the axis to that. I also tried fig.canvas.draw. Also I've experimented with calling plt.show() in the main function. Nothing changed in any of those cases. Why aren't the images drawn on the plot like I expect?
noel
1

голосов
0

ответ
788

Просмотры

Seaborn: Этикетка Выпадающие на коробке Участок

У меня есть фрагмент питона, чтобы создать окно сюжет следующим образом (отлично работает): слился = group.merge (т, left_on = т [ «user_lower»], right_on = группа [ «пользователя»], как = «влево») г = sns.boxplot (х = "компания", Y = "Total_Activities", данные = объединены, ориентируют = "V") g.set_xticklabels (g.get_xticklabels (), вращение = 90) plt.show (г) I» читали в других постах, что это вовлеченный Перебор выбросов. Кто-нибудь есть пример этого для объединенного набора данных с помощью Сиборна?
user3425900
1

голосов
1

ответ
423

Просмотры

control.matplotlib.pzmap doesn't show zeros

Сделайте простую передаточную функцию с одним нулем и двумя полюсами, а затем построить свой полюс нулевой карты: контроль импорта импорта matplotlib.pyplot как рх TFX = control.tf ([1,1], [1,1,1]) управления. matlab.pzmap (TFX) plt.show () Результат: Python отображает график с двумя полюсами, но не ноль (питона 3,6). Повторно сделать выше с двумя небольшими изменениями следующим образом: контроль импорта импорта matplotlib.pyplot, как рх импорта Matplotlib как MPL mpl.style.use ( «классического») TFX = control.tf ([1,1], [1,1 , 1]) control.matlab.pzmap (TFX) plt.show () Результат: Python отображает участок с двумя полюсами и один ноль. Мой диагноз: Настройки черчения Matplotlib по умолчанию не отображает круг маркер «O». Моя проблема: Я хочу использовать Matplotlib настройки по умолчанию сюжетные (Потому что это довольно). Я не хочу, чтобы использовать «классическую» настройку. Как изменить настройки по умолчанию, чтобы показать круговые маркеры? Вот то, что я пробовал: mpl.rcParams [ 'patch.force_edgecolor'] = True mpl.rcParams [ 'patch.edgecolor'] = 'к' mpl.rcParams [ 'boxplot.flierprops.markeredgecolor'] = 'к' Но это не меняет результата. Есть идеи? Второй и слегка связанный с этим вопрос: в соответствии с документом на модуле управления, control.pzmap (TFX) вместо control.matlab.pzmap (TFX) должен сделать полюс нулевой сюжет. Однако, что будет бросать «модуль не отозваны» ошибка. Странный... Есть идеи? Второй и слегка связанный с этим вопрос: в соответствии с документом на модуле управления, control.pzmap (TFX) вместо control.matlab.pzmap (TFX) должен сделать полюс нулевой сюжет. Однако, что будет бросать «модуль не отозваны» ошибка. Странный... Есть идеи? Второй и слегка связанный с этим вопрос: в соответствии с документом на модуле управления, control.pzmap (TFX) вместо control.matlab.pzmap (TFX) должен сделать полюс нулевой сюжет. Однако, что будет бросать «модуль не отозваны» ошибка. Странный...
Edwin
1

голосов
0

ответ
24

Просмотры

Как указать названия меток & видимость для некоторых сюжетных

Я пытаюсь сделать пирамидальную график всех аналитов образца представлен графически друг против друга. Например, если я имел некоторое количество строк в ФРЕ которых каждый имело значение для «SiO2» столбцов, «TiO 2», «Al2O3», «FeO», «MgO», «СаО», «Na2O», «Его», то Я хотел бы получить график, как это: Я пытаюсь сделать это приспосабливается к любой длине «колонны», так что пользователь может изменить значение и все еще получить подобный график. Мой текущий код является своим родом работа с точкой зрения итерации и размещения: столбцы = [ «SiO 2», «TiO 2», «Al2O3», «FeO», «MgO», «СаО», «Na2O», «Его»] е, ах = plt.subplots (figsize = (16,8), отжимают = False) для г в диапазоне (0, LEN (столбцы) -1): для J в диапазоне (0, LEN (столбцы)): если ^ > я: перерыв остальное:. ах = plt.subplot2grid ((LEN (столбцы) -1, LEN (столбцы) -1), (I, J)) рассеивают (DF [столбцы [J]], [образцы столбцов [+ 1] ]) Это дает мне сюжет, как же, теперь мне нужно, чтобы выяснить, как добавить заголовки только внешние участки, а также удалить номера / тиков от внутренних участков. Я думаю, что, возможно, я мог бы решить эту проблему, называя каждый сюжет по-разному, но я не уверен, как это сделать. Если бы это было так, то я мог бы сказать, какие участки в hideaxis, и какие участки дать метку оси. В поисках каких-либо идей, спасибо! а также удалить номера / тиков от внутренних участков. Я думаю, что, возможно, я мог бы решить эту проблему, называя каждый сюжет по-разному, но я не уверен, как это сделать. Если бы это было так, то я мог бы сказать, какие участки в hideaxis, и какие участки дать метку оси. В поисках каких-либо идей, спасибо! а также удалить номера / тиков от внутренних участков. Я думаю, что, возможно, я мог бы решить эту проблему, называя каждый сюжет по-разному, но я не уверен, как это сделать. Если бы это было так, то я мог бы сказать, какие участки в hideaxis, и какие участки дать метку оси. В поисках каких-либо идей, спасибо!
Kelsey Markey
1

голосов
2

ответ
190

Просмотры

Python Сиборн легенда отрезана

Цифра в результате кода Python ниже, к сожалению, отсекает часть легенд. Как можно избежать этого? Я не пропустить параметр в вызове SNS или это из-за того, как я создал мой PyCharm IDE? импорт панды как PD импорта Сиборн как SNS импортировать matplotlib.pyplot, как PLT DF = pd.read_csv ( 'gm_2008_region.csv') DF = df.drop ( 'область', ось = 1) plt.figure () sns.heatmap (DF .corr (), квадрат = True, CMAP = 'RdYlGn') plt.show () Это результирующий рисунок: файл .csv можно найти здесь.
apitsch
1

голосов
0

ответ
291

Просмотры

участок RGB с использованием cartopy pcolormesh

Я пытаюсь построить массив RGB по карте с помощью нерегулярного широчайшего массива / долготы, которые предоставляются с набором данных. Для этого я использую pcolormesh, как описано здесь. Проблема заключается в том, что cartopy pcolormesh, кажется, не в состоянии оказать данные при пересечении Dateline (180 меридиана), или, по крайней мере, я не мог найти обходной путь. Скрипт ниже регенерирует вопрос: импорт matplotlib.pyplot, как PLT импорт cartopy.crs как КЦДЗ импорта NumPy как нп # RGBA изображения г = np.array ([[0,27359769, 0,27359769, 0,27359769, 0,27359769], [0,27359769, 0,67702749, 0,85702749, 0.27359769 ], [0.27359769, 0.85702749, 0.67702749, 0.27359769], [0.27359769, 0.67702749, 0.85702749, 0.27359769], [0.27359769, 0.85702749, 0.67702749, 0.27359769], [0.27359769, 0.27359769, 0.27359769, 0.27359769]]) г = пр.
Monobakht
1

голосов
0

ответ
463

Просмотры

Плавный контур участка покрытия и маскируется шейп в BaseMap

У меня есть полигон шейп (штат Иллинойс) и CSV-файл с (широта, долгота, Zvalue). Я хочу, чтобы построить плавный контур участка, представляющий эти zvalues. Ниже мой код: импорт Глоб импорт Фиона импорт NumPy в н.п. импортных панд в э.р. из Matplotlib импорта pyplot в PLT из mpl_toolkits.basemap импорта BaseMap из matplotlib.mlab импорта GridData # считывает в табличных данных tabfname = glob.glob ( "Выходы \ \ *. CSV ") [0] = ДФ pd.read_table (tabfname, сентябрь =", ") печать (df.head ()) широта, долгота, г = список (df.y), список (df.x) , список (DF [ "Тейль Сен Склон"]) z0, z1, z2 = np.min (г) +0,03, np.mean (г), np.max (г) -0,01 # Прочитайте некоторые метаданные шейп SHP = glob.glob ( "ГИС \\ * SHP") [0] с fiona.drivers (): с fiona.open (SHP), как SRC: bnds = src.bounds степени = [значений для значений в bnds] Lono = нп. HTML Теперь этот образ имеет 3 задачи: Интерполированное контур не расширяется в целом в шейпе Часть контура участка выступающего из границы шейпа не замаскирован Контур не является гладким. То, что я хочу, чтобы преодолеть эти три недостатки моего участка и создать плавный и приятный глазу сюжет, похожий на те, которые показаны ниже (Источник: https://doi.org/10.1175/JCLI3557.1): Как достичь этого?
SereneWizard
0

голосов
1

ответ
357

Просмотры

Matplotlib: изменение легенды по умолчанию LOC и легенда BBOX на якорь

Каждый раз, чтобы построить в Matplotlib с пандами, чтобы поставить легенду за пределами фигуры, я должен сделать что-то вроде:. Single_obj_trading_curve_instrument_toppercentile.plot () легенда (LOC = «слева по центру», bbox_to_anchor = (1,0.5)) Этот позже часть .legend (LOC = «слева по центру», bbox_to_anchor = (1,0.5)) слишком повторяющийся ... есть ли способ установить это по умолчанию? Спасибо,
user40780
1

голосов
0

ответ
389

Просмотры

Попытка заполнить области графика между 3 линий [дубликат]

Этот вопрос уже есть ответ здесь: Matplotlib заполнить между несколькими линиями 3 ответов Сложность затенения в возможной области на участке с использованием Matplotlib [Дубликат] 1 ответ я написал код черчения 3 уравнений на графике с помощью питона. То, что я хотел бы сделать, это заполнить в области графа с использованием fill_between. По некоторым причинам, я не могу заполнить в этом регионе так, как я хочу. Мой код размещен ниже. фигура () х = arange (0,20,1) у1 = х +-у2 = х + 10 у3 = х - 3 xlim (0,20) ylim (0,20) ## определяет наши точки участка (х , у1, с = 'г', метка = 'у = х + 5') ## красная линия участок (х, y 2, с = 'B', метка = 'у = х + 10') ##-синий линия участок (х, у3, с = 'г', метка = 'у = х-3') ## легенда зеленая линия ([ 'у = х + 5', 'у = х + 10', 'у = X-3' ]) fill_between (х, у1, у2, у3, цвет = «синий», альфа = «0,5») Но когда я использую этот код: я получить заливку в регионе ниже: Что мне нужно, чтобы заполнить размещен ниже: EDIT: Это не разрешится ответами на ранее проблема Matplotlib размещена на этом сайте. Когда я запускаю этот код, я получаю сообщение об ошибке о том, что: ValueError: х и у должны иметь такое же первое измерение, но имеет формы (200,) и (20), я не имею числовые значения для преобразования в массивы. Я не знаю точно, как преобразовать эти уравнения в пути, где я могу использовать fill_between с помощью этого метода. Я также попытался этот метод: импорт pylab, как рх импорта NumPy как нп X = arange (0,20,1) Y1 = np.array (х + 5) У2 = np.array (х + 10) Y3 = нп. массив (х - 3) plt.ylim (0,20) xlim (0,20) plt.plot (X, Y1, Lw = 4) plt.plot (х, Y 2, ЛМ = 4) plt.plot (х, Y3, Lw = 4) plt.fill_between (X, Y1, Y2, Y3, цвет = 'к', альфа =.
user7298979
1

голосов
0

ответ
255

Просмотры

Алгоритм контура Matplotlib в

Я пытаюсь выяснить, какой алгоритм точно Matplotlib используется, чтобы найти контуры. После небольшого поиска, я нашел здесь, что контур участка называет основной метод контура, написанный на C, который, на прямоугольник сетки [-размер, размер] х [-размер, размер] с num_samp перегородками на ось, сводится к чему-то вроде : импорт matplotlib._cntr, как CNTR импорта NumPy как нп Xgrid, ygrid = np.mgrid [-размер: размер: num_samp, размер: размер: num_samp] zvals = FUNC (Xgrid, ygrid) прод = cntr.Cntr (Xgrid, ygrid, zvals) NLIST = cont.trace (уровень, уровень 0) возвращение NLIST [: Len (NLIST) // 2], чтобы найти список подключенных компонентов пути. Но я не могу найти дополнительную информацию по этим двум методам, Cntr и проследить даже после попытки просматривать хранилище GitHub. Я особенно заинтересован в следующих вопросах: При каких условиях это алгоритм отбрасывать точку на сетке? Является ли это как-то просто, как сравнение изменения знака по краям? Очевидно, что существует какое-то интерполяция происходит (результирующие точки не обязательно точки на входной сетке), как именно это делается и к которому точности? Любая помощь приветствуется.
Banana
1

голосов
1

ответ
101

Просмотры

необработанные входные данные через вход Tkinter виджета [дублировать]

Этот вопрос уже есть ответ здесь: Как я могу избежать латексной коды, полученными с помощью пользовательского ввода? $ \ Сумма 5 ответов от импорта Tkinter * импорт matplotlib.pyplot как окна рха = Tk () entryBox = запись (окна, текст = 'Команда латексной вход') entryBox.grid (строка = 0, столбец = 0) S =»{ п} = \ гидроразрыва {п (п + 1)} {2} $»plt.text (0,5, 0,5, с, FontSize = 40) plt.show () Этот фрагмент кода отображает только часть выражения следующим : вместо ожидаемого результата: (Это достигается за счет изменения 7-й линии, как: plt.text (0,3, 0,3, г '$ \ сумма {N} = \ {гидроразрыва п (п + 1)} {2} $», размер шрифта = 40)). Я понимаю, что в первом случае мы не передавая строку в качестве исходной строки. Как я могу получить участок для правильного отображения, когда у меня есть строка в качестве переменной строки, но не может ввести его как строковый литерал?
Mutasim Mim
1

голосов
1

ответ
90

Просмотры

Окрашивание бары гистограммы по-разному, используя панда и Matplotlib [дублировать]

Этот вопрос уже есть ответ здесь: изменять цвет каждой полосы в гистограмме, используя определенное значение 3 ответа Таким образом, у меня есть данные, что выглядит как Производитель Mean 0 DAF 57,036199 1 Fiat 42,296814 2 Форд 54,546769 3 Iveco 41,678711 4 MAN 50,764308 5 Mercedes Benz 49,093340 6 Renault 47.384080 7 Scania 46,317282 8 Volkswagen 50,938158 9 Volvo 43,382830 Я пытаюсь построить гистограмму, используя приведенные выше данные. Я хочу, чтобы значения выше 48 должны быть окрашены по-разному, а нижний 3 должен быть окрашен по-разному. Я попытался с помощью кода ниже, но это дает мне следующую ошибку: TypeError: неподдерживаемый тип операнда (ов) для -: «ул» и «поплавком» код, который я написал, чтобы сделать график: plt.figure () PLT.
paddy
1

голосов
0

ответ
487

Просмотры

Решение и анимировать системы Лоренца с помощью RK4

Я работаю над проектом, который вращается вокруг хаотических осцилляторов. Теперь, я просто закодированы аттрактор Лоренца в Python с использованием Рунге-Кутта четвертого порядка: «»»создан 19 февраля. 2018 @author: judvuyst ''»импорт matplotlib.pyplot в PLT из mpl_toolkits.mplot3d импорта Axes3D импорта NumPy как нп импорта matplotlib.animation как анимации #Differential уравнений Лоренц системы четкости X (х, у, ы): возвращение s * (у - х) Защиты у (х, у, г, г): возвращение (-x) * г + г * х - у Защиты Z (х, ​​у, г, б): возвращение х * у - б * г # RK4 для дифференциальных уравнений DEF RK4 (х, у, г, с, т, б, з): k_1 = X (х, у, с) l_1 = Y (х, у, г, г) m_1 = Z ( х, у, г, б) K_2 = х ((х + k_1 * ч * 0,5), (у + l_1 * ч * 0,5), с) l_2 = у ((х + k_1 * ч * 0,5), (у + l_1 * ч * 0,5), (г + m_1 * ч * 0,5), г) m_2 = Z ((х + k_1 * ч * 0,5), г, с, т, б, д) x_list.append (положение [0]) y_list.append (положение [1]) z_list.append (положение [2]) H + = 0,0000005 г + 1 = #plotten рис = PLT .figure () ах = fig.gca (проекция = '3d') x_array = np.array (x_list) y_array = np.array (y_list) z_array = np.array (z_list) ax.plot (x_array, y_array, z_array, «») plt.show () Мой вопрос: могу ли я использовать этот код, чтобы сделать моделирование аттрактора? Какое-то точка и линии, следует этим уравнениям и оставить за собой след, который в конце является полным аттрактор изображения. Я не очень знаком с модулем анимационной Matplotlib. Thx заранее! С наилучшими пожеланиями Джулиан 3d ') x_array = np.array (x_list) y_array = np.array (y_list) z_array = np.array (z_list) ax.plot (x_array, y_array, z_array,', ') plt.show () Мой вопрос: могу ли я использовать этот код, чтобы сделать моделирование аттрактора? Какое-то точка и линии, следует этим уравнениям и оставить за собой след, который в конце является полным аттрактор изображения. Я не очень знаком с модулем анимационной Matplotlib. Thx заранее! С наилучшими пожеланиями Джулиан 3d ') x_array = np.array (x_list) y_array = np.array (y_list) z_array = np.array (z_list) ax.plot (x_array, y_array, z_array,', ') plt.show () Мой вопрос: могу ли я использовать этот код, чтобы сделать моделирование аттрактора? Какое-то точка и линии, следует этим уравнениям и оставить за собой след, который в конце является полным аттрактор изображения. Я не очень знаком с модулем анимационной Matplotlib. Thx заранее! С наилучшими пожеланиями Джулиан м не очень знакомы с модулем анимационной Matplotlib. Thx заранее! С наилучшими пожеланиями Джулиан м не очень знакомы с модулем анимационной Matplotlib. Thx заранее! С наилучшими пожеланиями Джулиан
JuDeV
1

голосов
3

ответ
2.8k

Просмотры

Matplotlib говорит изображение слишком велико, когда это не

Я делаю это заговоры в Jupyter Notebook: рис = plt.figure () fig.suptitle ( "{0} узлы" .format (я * 4)) печать ( "положить suptitle") fig.text (0,0, s = "ошибка: {0}". формат (ошибки [I-1])) печать ( "поместить текст") plt.plot (средство, np.zeros (means.shape), "перейти") печать (средства. форма) plt.plot (patterns_test, выходы, "т.", метка = "выходы") печать (patterns_test.shape, outputs.shape) plt.plot (patterns_test, targets_test, "B"., LABEL = "цели") печать (patterns_test.shape, targets_test.shape) plt.legend () печать ( «легенда») я напечатал форму всего, что нарисовано, и возвращаемые значения: положить suptitle поместить текст (16,) (62, ) (62,) (62,) (62,) легенда Ясно ничто не велико. Но вот сообщение об ошибке: 6 / сайт-пакеты / Matplotlib / бэкэнды / backend_agg.py в __init __ (самостоятельно, ширина, высота, 90 точек на дюйм) self.width = ширина 91 self.height = высота ---> 92 self._renderer = _RendererAgg (интермедиат (ширина ), Int (высота), точки на дюйм, отлаживать = False) 93 self._filter_renderers = [] 94 ValueError: размер изображения из 298022x298 пикселей слишком велик. Оно должно быть меньше, чем 2 ^ 16 в каждом направлении. Как можно разобраться в этом?
Sahand
1

голосов
0

ответ
486

Просмотры

Matplotlib: прокладочные изображения вместо точек растягивает изображения

РЕШЕНИЕ Что работает для меня, чтобы нормализовать свои матрицы между 0 и 1, а не 0 и 255. Я понятия не имею, почему это работает, но если кто-то есть объяснение, я принимаю ответ. ОРИГИНАЛЬНЫЙ ВОПРОС У меня есть набор данные изображений, которые являются черными прямоугольниками на белых полях. Например, вот три таких изображений (извините, нет границ): Я хочу, чтобы построить график рассеяния, в котором каждая точка данных представлена ​​в виде изображения. Я использовал код из этого SO, но есть участок, который выглядел так (график с границами для отладки): Как вы можете видеть, образа все выглядят как квадраты. На самом деле, они должны быть различных размеров прямоугольников с различными позициями внутри кадра. Есть ли способ исправить это? Вот код, который генерирует несколько изображений, а затем строит их в качестве точек Разброса участка. подзаговоры () # Создать десять случайных точек. N_SAMPLES = 10 баллов = np.random.random ((N_SAMPLES, 2)) * 100 изображений = np.zeros ((N_SAMPLES, 3, 32, 32)) для ввода в диапазоне (N_SAMPLES): изображения [I] = create_image ( ) Xp = точка [:, 0] = Yp точка [:, 1] ax.set_xlim ([Xp.min (). astype (INT), Xp.max (). astype (INT)]) ax.set_ylim ([ .. Yp.min () astype (INT), Yp.max () astype (интермедиат)]) imscatter (точки, изображения, топор) plt.show () Из комментариев: @ImportanceOfBeingErnest получает это изображение, когда работает мой сценарий локально , в то время как я получаю это изображение. Я думаю, что это связано с DPI или разрешения каким-то образом. astype (интермедиат)]) ax.set_ylim ([Yp.min (). astype (INT), Yp.max (). astype (интермедиат)]) imscatter (точки, изображения, топор) plt.show () Из комментариев : @ImportanceOfBeingErnest получает это изображение при запуске моего скрипта локально, в то время как я получаю это изображение. Я думаю, что это связано с DPI или разрешения каким-то образом. astype (интермедиат)]) ax.set_ylim ([Yp.min (). astype (INT), Yp.max (). astype (интермедиат)]) imscatter (точки, изображения, топор) plt.show () Из комментариев : @ImportanceOfBeingErnest получает это изображение при запуске моего скрипта локально, в то время как я получаю это изображение. Я думаю, что это связано с DPI или разрешения каким-то образом.
gwg
1

голосов
0

ответ
207

Просмотры

Rotate or exchange x-y axis in geopandas dataframe plot

Я новичок в geopandas dataframes, и я получил GeoDataframe координирующий сделать участок очень большой. Я намерен повернуть участок 90 ° или изменить координаты х от каждого из полигонов. Я не достиг какого-либо из этих вариантов. Я также хочу поставить легенду о других GeoDataframe (это одна с точками), но я боюсь, что с вращением, легенда также будет вращаться (если .. это возможно). До сих пор, код выглядит так: от shapely.geometry импорта Поинт импорта панд, как П.Д. импорт geopandas как GPD импорт matplotlib.pyplot как зоны рх # Импорт данных = gpd.read_file ( «») myfile_with_polygons.shp Barr = pd.read_csv ( 'myfile_with_LongLat_Coordinates.csv') # Создание GeoDataFrame от Панды Dataframe геометрии = [Точка (х) для х в молнии (Barr.Longitud, Barr.Latitud)] Барра = gpd.GeoDataFrame (Барр, CRS = { 'инициализации':
Traxidus Wolf
1

голосов
1

ответ
49

Просмотры

Как разместить легенду рядом с каждой строкой в ​​matplitlib

Вот мой сюжет, вы можете видеть, что есть более 15 строк в сюжете, хотя я поставил легенду в верхнем правом углу, я до сих пор не могу легко отличить каждую строку. Есть ли лучший способ сделать это? например, поставить легенду следующей каждой строки? Я не могу найти API. любая помощь приветствуется. Вы можете
scott huang
1

голосов
0

ответ
126

Просмотры

Удаление фона на 3d участка Julia

У меня возникли некоторые реальные проблемы, пытаясь построить хорошие вещи с Юлей. Я впервые использовал PyPlot который я был доволен, но я должен был быть в состоянии изменить угол на 3D-графиков (в этом случае с использованием поверхности), так что теперь я использую участки непосредственно с speficication камеры. Я хотел бы, чтобы удалить фон на 3D-сюжет. используя PyPlot, следующую команду: ах = GCA (); Топор: set_axis_off отлично работает. При использовании сюжетов, я попытался следующее: используя участки; pyplot (сетка = ложь), а затем мой код на поверхность, и она не меняет выход. Я также попробовал первый пример на этой странице: https: //github.com/JuliaPlots/Plots.jl/pull/695 и спецификация сетки не работают (Сетки же на каждом участке расположения). Я попытался после обновления каждого пакета, и он до сих пор не работает. Кто-нибудь есть идея о том, что бы быть проблема, пожалуйста? Заранее спасибо !
ChrlTsr
1

голосов
1

ответ
308

Просмотры

Ошибка шины (ядро сбрасывали) с Matplotlib pyplot

С помощью консоли IPython, чтобы создать matplotlib.pyplot диаграмму я только недавно получить автобус ошибок (ядро сбрасывали). Моя ОС Ubuntu 16.04 LTS и я использую распределение Anaconda Python. Python 2.7.14 | Anaconda пользовательские (64-разрядная версия) | (По умолчанию, 7 декабря 2017, 17:05:42) IPython 5.4.1 - Усовершенствованный интерактивный Python. В работе [1]: импорт matplotlib.pyplot как PLT в [2]: plt.get_backend () из [2]: u'Qt5Agg»В [3]: plt.plot (диапазон (10)) Ошибка шины (основной сбрасывали) Если я использую ноутбук jupyter затем plt.get_backend () сообщает% Matplotlib инлайн и все работает отлично. Поэтому я подозреваю, что его Qt5. Я озадачен, как я попробовал все, что я знаю. Мой ноутбук идентичная установка с Anaconda работает отлично. Спасибо!
Justin Solms
1

голосов
1

ответ
132

Просмотры

Windows, Python Matplotlib Latex проблесковый CMD окна

Я недавно переустановил питон, Latex (через TeXworks) и Matplot Lib. (Все на окнах 10) и каждый раз, когда я построить график, который использует латекс в каком-нибудь тексте, я получаю огромное количество консольных окон мигающих открытой. Это кажется как ошибка, так как даже этот код: импорт matplotlib.pyplot, как рх plt.rc ( «текст», usetex = True) plt.title ( «Привет») plt.show () После запуска и увеличенной в, создает около 20 секунд мигания окна консоли. И это увеличение на пустой граф с Hi в качестве заголовка. Названия программ, которые всплывают являются: C: \ texlive \ 2017 \ Bin \ win32 \ kpsewhich.exe C: \ texlive \ 2017 \ Bin \ win32 \ latex.exe C: \ texlive \ 2017 \ Bin \ win32 \ dvipng.exe (Python, Matplotlib и TeXworks все только последние версии: 3,64 (для окон 32 бит), 2.2.0 (через ПГИ), и 0.6.2)
Ben Norman
1

голосов
0

ответ
841

Просмотры

Gradient color plot in Matplotlib

Я кодирование приложения питона, который собирает температуру и время от беспроводной сенсорной сети. Кратко фрагмент моего кода, как это: a.set_facecolor ((0,9, 0,9, 1,0)) myFmt = mdates.DateFormatter ( '% H:% M') a.xaxis.set_major_formatter (myFmt) a.xaxis_date () а .set_title ( 'температура БСС') a.set_ylabel ( 'Темп' + U "\ u2103") a.set_xlabel ( 'Time') a.grid (Правда) a.set_ylim ([- 20, 40]) обнаружили, #values в collectsensor.py a.yaxis.set_ticks (np.arange (-20, 40, 5)) a.set_xlim ([timeIntervalLeft, timeIntervalRight]) CMAP = clr.LinearSegmentedColormap.from_list ( "", [ "Darkblue", " синий " "фиолетовый", "желтый", "апельсин", "красный"]) cmap2 = clr.LinearSegmentedColormap.from_list ( "", [ "красный", "апельсин", "желтый","
Condo
1

голосов
3

ответ
110

Просмотры

графики данных из списка в Python

Мне нужно построить скорости некоторых объектов (автомобили). Каждая скорость в настоящее время рассчитывается с помощью подпрограммы и записываются в файл, примерно через это (я удалил несколько строк, чтобы упростить): thefile_v = открытый ( «vels.txt», «ж») для автомобиля в автомобилях: velocities.append ( new_velocity), если LEN (car.velocities)> 4: попробуйте: thefile_v.write ( "% S \ N" % car.velocities) #write Велс как только мы получим 5 значений thefile_v.close за исключением: печать "Неожиданная ошибка:", SYS .exc_info () [0] поднять результат это текстовый файл со списком скоростей для каждого автомобиля. что-то вроде этого: [0.0, 3.8, 4.5, 4.3, 2.1, 2.2, 0.0] [0.0, 2.8, 4.0, 4.2, 2.2, 2.1, 0.0] [0.0, 1.8, 4.2, 4.1, 2.3, 2.2, 0.0] [ 0,0, 3,8, 4,4, 4,2, 2,4, 2,4, 0. 0] Тогда я хотел построить каждую скорость с открытой ( 'vels.txt') в виде F: LST = [line.rstrip () для линии в F] plt.plot (LST [1]) #lets сюжета второй линии PLT .show () Это то, что я нашел. Значения взяты в виде строки и поместить их в yLabel. Я получил это работает через это: от Numpy импорта массива у = np.fromstring (ули (LST [1]) [1: -1], DTYPE = np.float, Сентябрь = '') plt.plot (у) PLT .show () То, что я узнал, что, множество списков скорости я смонтировал ранее рассматривался как линии данных. Я должен был преобразовать их в массивы, чтобы иметь возможность построить их. Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии? rstrip () для линии в F] plt.plot (LST [1]) #lets сюжет второй линии plt.show () Это то, что я нашел. Значения взяты в виде строки и поместить их в yLabel. Я получил это работает через это: от Numpy импорта массива у = np.fromstring (ули (LST [1]) [1: -1], DTYPE = np.float, Сентябрь = '') plt.plot (у) PLT .show () То, что я узнал, что, множество списков скорости я смонтировал ранее рассматривался как линии данных. Я должен был преобразовать их в массивы, чтобы иметь возможность построить их. Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии? rstrip () для линии в F] plt.plot (LST [1]) #lets сюжет второй линии plt.show () Это то, что я нашел. Значения взяты в виде строки и поместить их в yLabel. Я получил это работает через это: от Numpy импорта массива у = np.fromstring (ули (LST [1]) [1: -1], DTYPE = np.float, Сентябрь = '') plt.plot (у) PLT .show () То, что я узнал, что, множество списков скорости я смонтировал ранее рассматривался как линии данных. Я должен был преобразовать их в массивы, чтобы иметь возможность построить их. Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии? Я получил это работает через это: от Numpy импорта массива у = np.fromstring (ули (LST [1]) [1: -1], DTYPE = np.float, Сентябрь = '') plt.plot (у) PLT .show () То, что я узнал, что, множество списков скорости я смонтировал ранее рассматривался как линии данных. Я должен был преобразовать их в массивы, чтобы иметь возможность построить их. Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии? Я получил это работает через это: от Numpy импорта массива у = np.fromstring (ули (LST [1]) [1: -1], DTYPE = np.float, Сентябрь = '') plt.plot (у) PLT .show () То, что я узнал, что, множество списков скорости я смонтировал ранее рассматривался как линии данных. Я должен был преобразовать их в массивы, чтобы иметь возможность построить их. Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии? Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии? Однако скобки [] садились в пути. Путь преобразования строки данных в строки и удаления скобок через это (то есть [1: -1]). Это работает, но я уверен, что есть лучший способ сделать это. Любые комментарии?
FranTo
1

голосов
1

ответ
36

Просмотры

Python с легендой рассеивания

Я пытаюсь создать легенду для моей диаграммы рассеяния, которая соответствует цветам, установленным в сюжете. Когда я запускаю мой код я получаю два участка, а цвета Dont матч. Может кто-то помочь мне исправить это? #import файлы и форматировать их (вы можете пропустить this- его просто имитируя мой набор данных) импорт matplotlib.pyplot в PLT импорта панд как Pd D = { «голос»: [100, 50,1,23,55,67,89, 44], 'голосование': [ 'а', 'Да', 'а', 'Нет', 'B', 'а', 'A', 'B'], 'whichballot': [1,2, 1,1,2,1,1,2]} dfwl = pd.DataFrame (д) dfwl [ 'whichballot'] = dfwl [ 'whichballot']. astype ( 'категория'). cat.codes dfwl [ 'голосования' ] = dfwl [ 'голосование']. astype ( 'категория') dfwl [ 'голос'] = dfwl [ 'голос']. astype ( 'INT') dfwl = pd.DataFrame (dfwl.reset_index ()) dfwl = dfwl [оплаченный
Rilcon42
1

голосов
0

ответ
223

Просмотры

Python: plotting an exponential on an axis

I'm currently working on a piece of code to model the evolution of the dark energy equation of state parameter w with the scale factor a. In order to do this I am solving a system of three coupled ODEs, however the derivative used is with respect to e-foldings N = ln(a) (in the code x = w and ln(a) = t for simplicity). I have the following code: import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt import math plt.rc('text', usetex=True) plt.rc('font', family='serif') def f(s,t): p = 1.0 G = 1.0 + (1.0/p) xm = 0 x = s[0] y = s[1] z = s[2] dxdt = (x - 1.0)*(3.0*(1.0 + x) - z*math.sqrt(3.0*(1.0 + x)*y)) dydt = -3.0*(x - xm)*y*(1.0 - y) dzdt = -math.sqrt(3.0*(1.0 + x)*y)*(G - 1.0)*(z**2) return [dxdt, dydt, dzdt] t = np.linspace(0.0001,1,10000) s0 = [-0.667,0.01,0.45] s = odeint(f,s0,t) plt.plot(t,s[:,0],'b-') plt.grid(True) plt.xlabel('e-foldings, N = ln(a)') plt.ylabel('Equation of state parameter w') plt.show() which gives me this plot. This works fine, however I want the x-axis in units of a and not N = ln(a) but I can't figure out how to make it work. I've tried changing the plot line to plt.plot(math.exp(t),s[:,0],'b-') but I get the following error: Traceback (most recent call last): File "/Users/bradleyaldous/propr2.py", line 26, in plt.plot(math.exp(t),s[:,0],'b-') TypeError: only size-1 arrays can be converted to Python scalars [Finished in 6.0s] Any help is greatly appreciated. EDIT: I've tried using np.exp() in the plot line like I did with the
Brad
1

голосов
0

ответ
25

Просмотры

Как настроить Jupyter ноутбук, чтобы использовать правильные пути, связанные с его ядром?

Моя цель состоит в том, чтобы запустить jupyter ноутбук для питона с помощью Python 2.7. Причина в том, что все модули питона мне нужно установлены под 2.7. Таким образом, я запускаю jupyhter ноутбук просто делать jupyter ноутбук от терминала, и я получаю это в правом верхнем углу: что говорит мне, что он начинает с помощью Python 2, я полагаю? Таким образом, я предполагаю, что он имеет доступ ко всем модулям, что мне нужно для этого Dev работу в python2.7. Когда я запускаю питон от терминала, и я импорт Matplotlib он отлично работает (и что использует python2.7). Но тогда, когда я пытаюсь импорт Matplotlib, как я всегда делаю это в Python 2.7, он говорит мне, что нет модуля с именем Matplotlib. Итак, я распечатать! Отголосок $ PATH только чтобы обнаружить, что я вижу все пути, связанные с 3.5, и ничего не относящиеся к Python 2.7. Как изменить путь, который jupyter ноутбук запуская с? И это картина, которую я отправил в виду что-нибудь о пути, который она использует? Я предположил, что это был запуск с использованием такой же, как когда я питона от терминала, как я уже говорил раньше. Дополнительная информация - MacOSX
Candic3
1

голосов
1

ответ
667

Просмотры

Live plotting from CSV file with matplotlib.animation - Data drawn to first entry error

I am attempting to plot data from a sensor that is continuously being written to a CSV file. While successful in creating a live plot, each new data entry creates an additional line that extends to the first data entry. See Below: The Python 3.4 Script: import matplotlib.pyplot as plt import matplotlib.animation as animation import time import datetime as dt import csv fig = plt.figure() ax1 = fig.add_subplot(1,1,1) x=[] ; y1=[]; y2=[]; y3=[] def animate(i): with open( 'data_log.csv', 'r') as csvfile: alphasensefile = csv.reader(csvfile, delimiter = ',') next(alphasensefile, None) next(alphasensefile, None) next(alphasensefile, None) for column in alphasensefile: a = dt.datetime.strptime((column[0]), '%H:%M:%S') x.append((a)) y1.append(column[1]) y2.append(column[2]) y3.append(column[3]) ax1.clear() ax1.plot(x,y1) ani = animation.FuncAnimation(fig, animate, interval=1000) plt.show() Running this script collects sensor data and records it to a CSV file. Every data entry recorded live from that start draws an additional line that goes to the first data entry point. Like so: if I open the file while the sensor is not recording, only the last data entry is linked to the first point like so: Data is recorded to the CSV file like so: PM Data Recorded: 23 03 2018 Time, PM 1, PM 2.5, PM 10 16:12:10, 0.1173, 0.1802, 3.2022 Any thoughts to why this is occurring?
Daniel Zanati
1

голосов
1

ответ
754

Просмотры

distplot () получил неожиданное ключевое слово аргумент «figsize» [дублированный]

Этот вопрос уже есть ответ здесь: Как изменить размер фигуры для Сиборна сюжета? 8 ответов Я пытаюсь изменить размер фигуры гистограммы я строящаяся. Я получаю сообщение об ошибке: distplot () получил неожиданный аргумент ключевое слово «figsize» Код я пытаюсь запустить это:. Sns.distplot (MSoft [ «pct_change»] dropna (), баки = 100, цвет =» пурпурный», figsize = (20,8))
1

голосов
1

ответ
217

Просмотры

Отображение гистограммы, Matplotlib не работает в Python

Я пытаюсь создать гистограмму для объема продаж в год по месяцам, я передаю в функцию список из 12 элементов, соответствующих количество продаж в месяц. Я обработать его и сделать все необходимые шаги, но вывод не что иное, как я хочу, чтобы это было. Любые идеи о том, что не так? Большое спасибо результата Code DEF BarChart (самости, ценности): y1 = Данные нужно [значение [0]] y2 = [значение [1]] y3 = [значение [2]] Y4 = [значение [3]] Y5 = [ значения [4]] Y6 = [значение [5]] Y7 = [значение [6]] y8 = [значение [7]] Y9 = [значение [8]] Y10 = [значение [9]] Y11 = [значение [ 10]] Y12 = [значения [11]] х = np.arange (LEN (у1)) # земля данные # использование ZOrder поставить обнажает перед сеткой. bar_width = 10 plt.bar (х, у1, ширина = bar_width, цвет = 'красный', ZOrder = 2) plt.bar (х + bar_width, у2, ширина = bar_width, цвет = 'синий', ZOrder = 2) plt.bar (х + bar_width, у3, ширина = bar_width, цвет = 'зеленый', ZOrder = 2) plt.bar (х + bar_width, у4, ширина = bar_width, цвет = 'оранжевый', ZOrder = 2) plt.bar (х + bar_width, Y5, ширина = bar_width, цвет = 'фиолетовый', ZOrder = 2) plt.bar (х + bar_width, Y6, ширина = bar_width, цвет = 'желтый', ZOrder = 2) plt.bar (х + bar_width, Y7, ширина = bar_width, цвет = 'белый', ZOrder = 2) plt.bar (х + bar_width, Y8, ширина = bar_width, цвет = 'розовый', ZOrder = 2) PLT. бар (х + bar_width, Y9, ширина = bar_width, цвет = 'золото', ZOrder = 2) plt.bar (х + bar_width, Y10, ширина = bar_width, цвет = 'черный', ZOrder = 2) plt.bar ( х + bar_width, Y11, ширина = bar_width, цвет = 'серебро', ZOrder = 2) plt.bar (х + bar_width, у1, ширина = bar_width, цвет = 'серый', ZOrder = 2) #labels #Adjust х до его в центре. plt.xticks (х + bar_width * 2, [ "январь"
Mahmoud Yassine
1

голосов
0

ответ
31

Просмотры

Как установить легенду, которая prodcted в lineplot как rowlabe таблицы

У меня есть ряд, и использовать ax.plot создающих линию plot.Then Я использую ax.table добавить таблицу ниже линии сюжета. импорт панда как PD импорт NumPy как нп импорт matplotlib.pyplot как = данные PLT [4.6, 4.8, 4.7, 5.2, 5.3, 5.4, 5.5] индекс = [ '3m', '6й', '1год', '', 2year '3year', '5year', '10летних'] S = pd.Series (данные, индекс = индекс) рис = plt.figure () ах = fig.add_subplot (111) х = np.arange (1, 8) рис = ax.plot (х, з) plt.xticks ([]) нога = plt.legend ( 'скорость') row_lables = [ 'ххх'] = таблица ax.table (Текст_ячейки = [данных], colLabels = индекс, rowLoc = «центр», colLoc = «центр», cellLoc = «центр», rowLabels = row_lables) plt.show () raw_plot Я хотел бы установить легенду как rowlabe таблицы (легенда заменяет строку «легенды»). Как я могу создать эту картину.
Stephen Zhou

Просмотр дополнительных вопросов