Все есть в заголовке. Я хочу, чтобы результаты моего ipywdiget находились в ячейке Jupyter, а не в журнале консоли, поэтому, если я могу чем-то помочь, пожалуйста, спасибо.
from IPython.display import display, Markdown, HTML
import requests
import ipywidgets as widgets
import matplotlib.pyplot as plt
import pandas as pd
import json
def make_hal_request(query, year, doc_type):
url = f"https://api.archives-ouvertes.fr/search/?q={query}&fq=docType_s:{doc_type}&fq=producedDateY_i:{year}&wt=json"
response = requests.get(url)
try:
data = response.json()
return data
except json.JSONDecodeError:
return None
doc_types = ['ART', 'COMM', 'OUV', 'THESE']
query_widget = widgets.Textarea(value='', placeholder='Saisissez votre requête ici', description='Requête:')
year_widget = widgets.Dropdown(options=['Toutes les années'] + list(range(2010, 2023)), description='Année:')
doc_type_widget = widgets.Dropdown(options=['Tous les types'] + doc_types, description='Type de document:')
display_type_widget = widgets.RadioButtons(options=['Tableau', 'Graphique'], description='Affichage:')
button = widgets.Button(description='Effectuer la requête')
def on_button_click(b):
query = query_widget.value.strip()
year = year_widget.value
doc_type = doc_type_widget.value
if not query:
display(Markdown('Veuillez saisir une requête valide.'))
return
if year == 'Toutes les années':
year = '*'
if doc_type == 'Tous les types':
doc_type = '*'
data = make_hal_request(query, year, doc_type)
if data is None:
return
num_results = data['response']['numFound']
display(Markdown(f"Nombre total de documents : {num_results}"))
if display_type_widget.value == 'Tableau':
if year == '*':
if doc_type == '*':
years = list(range(2010, 2023))
counts = []
for year in years:
data = make_hal_request(query, year, doc_type)
if data is not None:
counts.append(data['response']['numFound'])
df = pd.DataFrame({'Année': years, 'Nombre de documents': counts})
display(df)
else:
display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de tableau.'))
else:
display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de tableau.'))
elif display_type_widget.value == 'Graphique':
if year == '*':
if doc_type == '*':
years = list(range(2010, 2023))
counts = []
for year in years:
data = make_hal_request(query, year, doc_type)
if data is not None:
counts.append(data['response']['numFound'])
plt.figure(figsize=(10, 6))
plt.plot(years, counts, marker='o')
plt.xlabel('Année')
plt.ylabel("Nombre de documents")
plt.title('Nombre de documents publiés par année')
plt.show()
else:
display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de graphique.'))
else:
display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de graphique.'))
button.on_click(on_button_click)
display(query_widget, year_widget, doc_type_widget, display_type_widget, button)
Мне нужно, чтобы результаты были в следующей ячейке моего блокнота Jupyter, если это возможно. Я не знаю, что сайт просит меня подробнее объяснить мою проблему.
Спасибо, что прочитали. Надеюсь, у тебя будет отличный день.
Все есть в заголовке. Я хочу, чтобы результаты моего ipywdiget находились в ячейке Jupyter, а не в журнале консоли, поэтому, если я могу чем-то помочь, пожалуйста, спасибо. [code]from IPython.display import display, Markdown, HTML import requests import ipywidgets as widgets import matplotlib.pyplot as plt import pandas as pd import json
if not query: display(Markdown('Veuillez saisir une requête valide.')) return
if year == 'Toutes les années': year = '*'
if doc_type == 'Tous les types': doc_type = '*'
data = make_hal_request(query, year, doc_type)
if data is None: return
num_results = data['response']['numFound'] display(Markdown(f"Nombre total de documents : {num_results}"))
if display_type_widget.value == 'Tableau': if year == '*': if doc_type == '*': years = list(range(2010, 2023)) counts = [] for year in years: data = make_hal_request(query, year, doc_type) if data is not None: counts.append(data['response']['numFound'])
df = pd.DataFrame({'Année': years, 'Nombre de documents': counts}) display(df) else: display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de tableau.')) else: display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de tableau.'))
elif display_type_widget.value == 'Graphique': if year == '*': if doc_type == '*': years = list(range(2010, 2023)) counts = [] for year in years: data = make_hal_request(query, year, doc_type) if data is not None: counts.append(data['response']['numFound'])
plt.figure(figsize=(10, 6)) plt.plot(years, counts, marker='o') plt.xlabel('Année') plt.ylabel("Nombre de documents") plt.title('Nombre de documents publiés par année') plt.show() else: display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de graphique.')) else: display(Markdown('Veuillez sélectionner "Toutes les années" pour afficher les résultats sous forme de graphique.'))
button.on_click(on_button_click) display(query_widget, year_widget, doc_type_widget, display_type_widget, button) [/code] Мне нужно, чтобы результаты были в следующей ячейке моего блокнота Jupyter, если это возможно. Я не знаю, что сайт просит меня подробнее объяснить мою проблему. Спасибо, что прочитали. Надеюсь, у тебя будет отличный день.
Короткий вопрос
Я хочу получить координаты, щелкая мышкой в разных местах на фигуре Matplotlib внутри Jupyter Notebook. Я хочу использовать ipywidgets без с помощью какой-либо магической команды Matplotlib (например, %matplotlib ipympl) для...
Короткий вопрос
Я хочу получить координаты, щелкая мышкой в разных местах на фигуре Matplotlib внутри Jupyter Notebook. Я хочу использовать ipywidgets без с помощью какой-либо магической команды Matplotlib (например, %matplotlib ipympl) для...
Короткий вопрос
Я хочу получить координаты, щелкая мышкой в разных местах на фигуре Matplotlib внутри Jupyter Notebook. Я хочу использовать ipywidgets без с помощью любой магической команды Matplotlib (например, %matplotlib ipympl) для...
Короткий вопрос
Я хочу получить координаты, щелкая мышкой в разных местах на фигуре Matplotlib внутри Jupyter Notebook. Я хочу использовать ipywidgets без с помощью любой магической команды Matplotlib (например, %matplotlib ipympl) для...