Anonymous
Как переместить ось X поверх графика вplotnine?
Сообщение
Anonymous » 26 дек 2024, 10:38
Я используюplotnine с графиком даты по оси X и хочу поместить
значения даты по оси X поверх диаграммы, но не нашел способа чтобы это сделать.
Я видел в ggplot, что это можно сделать с помощью Scale_x_discrete(position = "top") , но с помощью Scale_x_datetime() я не смог найдите любой параметр позиции в plotnine.
Ниже приведен пример кода:
Код: Выделить всё
import pandas as pd
from plotnine import *
# Create a sample dataset
data = pd.DataFrame({
'date': pd.date_range('2022-01-01', '2022-12-31',freq="M"),
'value': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
})
# Create the line chart
(ggplot(data, aes(x='date', y='value')) +
geom_line() +
labs(title='Line Chart with Dates on X-Axis', x='Date', y='Value') +
theme_classic()
)
Буду очень признателен за любую помощь!
Обновление (аспектный график) после ответа:
Код: Выделить всё
# sample dataset
new_data = {
'date': pd.date_range('2022-01-01', periods=8, freq="ME"),
'parent_category': ['Electronics', 'Electronics', 'Fashion', 'Fashion', 'Home Goods', 'Electronics', 'Fashion','Electronics'],
'child_category': ['Smartphones', 'Laptops', 'Shirts', 'Pants', 'Kitchenware','Laptops', 'Shirts', 'Smartphones']
}
# Create DataFrame
new_data = pd.DataFrame(new_data)
new_data
сюжет с подсказками по ответам
Код: Выделить всё
(ggplot(new_data, aes(x="date", y="child_category", group="child_category")) +
geom_line(size=1, color="pink") +
geom_point(size=3, color="grey") +
facet_wrap("parent_category", ncol=1, scales="free_y") +
theme_538() +
theme(axis_text_x=element_text(angle=45, hjust=1),
panel_grid_major=element_blank(),
figure_size=(8, 6),
axis_line_x=element_line(position=('axes',1)))
)
На фасетной диаграмме он не занимает верхние строчки диаграммы.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... n-plotnine
1735198692
Anonymous
Я используюplotnine с графиком даты по оси X и хочу поместить [b]значения даты по оси X поверх[/b] диаграммы, но не нашел способа чтобы это сделать. Я видел в ggplot, что это можно сделать с помощью Scale_x_discrete(position = "top") , но с помощью Scale_x_datetime() я не смог найдите любой параметр позиции в plotnine. Ниже приведен пример кода: [code]import pandas as pd from plotnine import * # Create a sample dataset data = pd.DataFrame({ 'date': pd.date_range('2022-01-01', '2022-12-31',freq="M"), 'value': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120] }) # Create the line chart (ggplot(data, aes(x='date', y='value')) + geom_line() + labs(title='Line Chart with Dates on X-Axis', x='Date', y='Value') + theme_classic() ) [/code] Буду очень признателен за любую помощь! [b]Обновление[/b] (аспектный график) после ответа:[code]# sample dataset new_data = { 'date': pd.date_range('2022-01-01', periods=8, freq="ME"), 'parent_category': ['Electronics', 'Electronics', 'Fashion', 'Fashion', 'Home Goods', 'Electronics', 'Fashion','Electronics'], 'child_category': ['Smartphones', 'Laptops', 'Shirts', 'Pants', 'Kitchenware','Laptops', 'Shirts', 'Smartphones'] } # Create DataFrame new_data = pd.DataFrame(new_data) new_data [/code] сюжет с подсказками по ответам [code](ggplot(new_data, aes(x="date", y="child_category", group="child_category")) + geom_line(size=1, color="pink") + geom_point(size=3, color="grey") + facet_wrap("parent_category", ncol=1, scales="free_y") + theme_538() + theme(axis_text_x=element_text(angle=45, hjust=1), panel_grid_major=element_blank(), figure_size=(8, 6), axis_line_x=element_line(position=('axes',1))) ) [/code] [img]https://i.sstatic.net/UDA5klBE.png[/img] На фасетной диаграмме он не занимает верхние строчки диаграммы. Подробнее здесь: [url]https://stackoverflow.com/questions/79305343/how-to-move-x-axis-on-top-of-the-plot-in-plotnine[/url]