我嘗試使用以下代碼標記系數和置信區間:
pp =p.ggplot(leadslags_plot, p.aes(x = 'label', y = 'mean',
ymin = 'lb',
ymax = 'ub')) \
p.geom_line(p.aes(group = 1),color = "b") \
p.geom_pointrange(color = "b",size = 0.5) \
p.geom_errorbar(color = "r", width = 0.2) \
p.scale_color_manual(name= "label:", values = ['b','r'],labels = ["coeff","95 percent CI"] ) \
p.theme("bottom") \
p.xlab("Years before and after ") \
p.ylab("value ") \
p.geom_hline(yintercept = 0,
linetype = "dashed") \
p.geom_vline(xintercept = 0,
linetype = "dashed")
該代碼生成繪圖,但未標記“coeff”和“CI”。如何標記“coeff”和“CI”

uj5u.com熱心網友回復:
問題是,要獲得傳奇,您必須在美學上進行映射。在ggplot2(R one)中,這可以通過在color="b"內部移動來輕松實作aes(),但在 plotnine 或 Python 中不起作用。也許有一種更 Python 的方式來解決這個問題,但一種選擇是向您的資料集添加兩個幫助列,然后可以將其映射到coloraes 上:
import pandas as pd
import plotnine as p
leadslags_plot = [[-2, 1, 0, 2], [0, 2, 1, 3], [2, 3, 2, 4]]
leadslags_plot = pd.DataFrame(leadslags_plot, columns=['label', 'mean', 'lb', 'ub'])
leadslags_plot["b"] = "b"
leadslags_plot["r"] = "r"
(p.ggplot(leadslags_plot, p.aes(x = 'label', y = 'mean',
ymin = 'lb',
ymax = 'ub')) \
p.geom_line(p.aes(group = 1),color = "b") \
p.geom_pointrange(p.aes(color = "b"),size = 0.5) \
p.geom_errorbar(p.aes(color = "r"), width = 0.2) \
p.scale_color_manual(name= "label:", values = ['b','r'], labels = ["coeff", "95 percent CI"] ) \
p.theme("bottom", subplots_adjust={'right': 0.8}) \
p.xlab("Years before and after ") \
p.ylab("value ") \
p.geom_hline(yintercept = 0,
linetype = "dashed") \
p.geom_vline(xintercept = 0,
linetype = "dashed"))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/495176.html
下一篇:更改Rggplot中的日期順序?
