Как я могу построить график с помощью histogram2d в Python?
У меня есть некоторые данные, и я хочу прочитать 5-й и 6-й столбцы, чтобы построить их 2D-гистограмму. Я написал следующий код, но он терпит неудачу. Я был бы признателен, если бы кто-то мог помочь мне в этом процессе.
Существует сообщение об ошибке измерения, которое я не понимаю, что-то вроде: "размер ячеек должен быть равен размеру образца x."
Я предоставил код, который я пробовал. Любое предложение очень ценится.
Вот ссылка на мои выборочные данные.
https://gofile.io/d/U4NT0e[^]
Что я уже пробовал:
import numpy as np import pandas as pd import matplotlib.pyplot as plt path = r'D:\test_file\data\final.txt' df = pd.read_csv( path , header = None, sep = ' ', dtype = float, engine = 'python') df1 = df[4].to_string() df2 = df[5].to_string() lmin = -1 lmax = 1 nbins = 100 xedge = np.linspace(lmin, lmax, nbins + 1) yedge = np.linspace(lmin, lmax, nbins + 1) fxyz = np.zeros((nbins,nbins)) weight = None hist,xedges,yedges=np.histogram2d(df1, df2, bins=(xedge,yedge), normed=True, weights=weight) fxyz += hist.T extent = (xedges[0],xedges[-1],yedges[0],yedges[-1]) with np.errstate(divide='ignore',invalid='ignore'): plt.figure(figsize=(10,6)) images = plt.imshow(np.log10(fxyz), origin='lower', extent=extent,cmap='jet') plt.ylim(0,0.7); plt.xlim(-0.7,0.7) plt.show()
Richard MacCutchan
Когда вы получите сообщение об ошибке, пожалуйста, добавьте полный текст к вашему вопросу и укажите, какая строка кода вызвала его появление
Mahdi Hasanzadeh
кандидат исторических наук,xedges,yedges=НП.histogram2d(df_pe, df_pa, ящики=(xedge,yedge), нормированных=true, то вес=вес)
Файл "D:\Anaconda\lib\site-packages\numpy\lib\twodim_base.py", строка 655, в гистограмме2d
кандидат исторических наук, кромки = histogramdd([Х, Y], урны, спектр, нормированный, Весов)
Файл "D:\Anaconda\lib\site-packages\numpy\lib\function_base.py", строка 917, в гистограмме.
"Размер бункеров должен быть равен размеру"
ValueError: размер ячеек должен быть равен
равна размерности образца x.
Mahdi Hasanzadeh
Спасибо за ваш любезный ответ и ответ на мой вопрос.
Gerry Schmitz
Похоже, что ваш Csv "подсчет столбцов / индексация" может быть отключен.
Mahdi Hasanzadeh
Спасибо за ответ. но что вы имеете в виду? Я распечатываю df1 и df2. Хотя они выглядят правильно.
Gerry Schmitz
Что же это делает? (Вы говорите, что строите столбцы "2" )
nbins = 100
Mahdi Hasanzadeh
Это число бункеров в каждом направлении. Мне нужно секционировать домен, чтобы построить гистограмму.
MehreenTahir
Вы пробовали hist2d из matplotlib.pyplot? Кроме того, было бы полезно, если бы вы указали набор данных, который используете, и да, пожалуйста, добавьте полное сообщение об ошибке и строку, в которой вы получаете ошибку.
Mahdi Hasanzadeh
Спасибо за ответ. Я предоставил ссылку на выборку данных.