Matplotlib — Показывать только данные, которые превышают определенное значение

#python #pandas #matplotlib

Вопрос:

Я использую Matplotlib и Pandas для построения данных.

Однако я хочу показать на графике только данные, которые превышают определенное значение.

 import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd

# Importing the data using Pandas
BE = pd.read_csv("BE-4YRS.csv")
FR = pd.read_csv("FR-4YRS.csv")


fig, ax = plt.subplots()
ax.scatter(BE["Week"], BE["percent"], alpha=0.7, c="r", s=BE["percent"]*2, label="Belgium")
ax.scatter(FR["Week"], FR["percent"], alpha=0.7, c="b", s=FR["percent"]*2, label="France")
ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=1))
plt.legend()
plt.xticks(rotation=45)
plt.grid(True)
 

Я пытался с :

 for i in BE["percent"]:
    if i > 75:
        print(i)
 

выход :

 78
100
78
76
77
87
 

Но мне не удается получить соответствующую дату для этих значений

Комментарии:

1. Измените for i in BE_CFT_18to21["percent"]: на for i in range(len(BE_CFT_18to21["percent"])): , и условие if также должно быть переписано на if BE_CFT_18to21["percent"][i] > 75: , затем вместо печати вызовите ax.scatter(BE["Week"][i], BE_CFT_18to21["percent"][i])

2. Большое вам спасибо, это работает

Ответ №1:

Вы можете сделать это с помощью:

 BE_CFT_18to21 = BE_CFT_18to21[BE_CFT_18to21.percent > 75]
 

Комментарии:

1. Основываясь на синтаксисе вопроса in OP, я бы подумал, что это будет BE_CFT_18to21["percent"][BE_CFT_18to21["percent"] > 75]

2. Это также работает : BE_ABOVE_75 = BE_CFT_18to21[BE_CFT_18to21[«процент»] > 75] печать(BE_ABOVE_75[«процент»]) >> дает мне процент, превышающий 75 печать(BE_ABOVE_75[«неделя»]) >>> дает мне даты

3. @Адиль конечно. Вы можете использовать либо BE_CFT_18to21["percent"] или BE_CFT_18to21.percent