Я использую python в первый раз. У меня есть файл csv с несколькими столбцами данных: местоположение, высота, плотность, день и т. д. Я рисую высоту (i_h100) v плотность (i_cd) и мне удалось ограничить высоту значениями ниже 50 с помощью кода ниже . Теперь я хочу, чтобы значения по оси Y находились в пределах определенного «дневного» диапазона, скажем (85-260). Я не могу понять, как это сделать.
import pandas
import matplotlib.pyplot as plt
data=pandas.read_csv('data.csv')
data.plot(kind='scatter',x='i_h100',y='i_cd')
plt.xlim(right=50)
Мне нужно удалить данные из столбца дня, чтобы они не были включены в мой график, клип, кажется, переназначает значения
Если вы хотите только построить график зависимости высоты от плотности, возможно, вы захотите сделать data[['height', 'density']].plot(kind='scatter',x='i_h100',y='i_cd'). Кстати, очень сложно ответить на вопрос, если вы не предоставите пример ввода и желаемых результатов. Например, теперь я должен угадать, каковы ваши имена столбцов. Я рекомендую вам отредактировать свой вопрос, чтобы добавить эту деталь.
@Dan, спасибо за информацию, я здесь впервые, поэтому в следующий раз постараюсь сделать проще!
@HeatherKay нет проблем, я также рекомендую прочитать это: stackoverflow.com/help/минимально-воспроизводимый-пример, но предоставление примеров входных данных и желаемых результатов значительно облегчает понимание цели вопроса.






Используйте .loc для подмножества данных, входящих в график.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Make some dummy data
np.random.seed(42)
df = pd.DataFrame({'a':np.random.randint(0,365,20),
'b':np.random.rand(20),
'c':np.random.rand(20)})
# all data: plot of 'b' vs. 'c'
df.plot(kind='scatter', x='b', y='c')
plt.show()
# use .loc to subset data displayed based on value in 'a'
# can also use .loc to restrict values of 'b' displayed rather than plt.xlim
df.loc[df['a'].between(85,260) & (df['b'] < 0.5)].plot(kind='scatter', x='b', y='c')
plt.show()
Спасибо! Но на самом деле мне нужно ограничить данные не по оси Y. По оси y указана плотность, мне нужно удалить данные за определенные дни, прежде чем строить график высоты и плотности.
В этом случае используйте .loc, чтобы подмножить данные третьей переменной перед построением графика. Скоро отредактирую комментарий.
поэтому df.loc[(df['c'].between(85,260)].plot(kind='scatter',x='a',y='b')
Вам нужно будет отредактировать свои переменные (см. stackoverflow.com/help/минимально-воспроизводимый-пример), но этот подход должен работать.
Также обратите внимание, что это не Удалить никаких записей из вашего фрейма данных. Он просто отображает подмножество этих записей. Таким образом, последующие операции с кадром данных будут использовать весь диапазон. Если вы хотите полностью удалить записи, вы можете использовать .drop.
@HeatherKay Рад, что это сработало. Если это так, было бы хорошо принять предоставленный ответ. Ваше здоровье.
взгляните на клип.