testBoxLine.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import plotly.graph_objects as go
  2. import numpy as np
  3. # 生成一些随机数据
  4. np.random.seed(10)
  5. data = np.random.randn(100)
  6. # 计算均值
  7. mean_value = np.mean(data)
  8. # 创建箱线图
  9. fig = go.Figure()
  10. # 添加箱线图
  11. fig.add_trace(go.Box(
  12. y=data,
  13. boxmean=False, # 不显示均值线
  14. marker_color='blue', # 箱体颜色
  15. line_color='blue', # 边框颜色
  16. width=0.4 # 调整箱体宽度
  17. ))
  18. # 添加均值线
  19. fig.add_shape(
  20. type='line',
  21. x0=0,
  22. y0=mean_value,
  23. x1=1,
  24. y1=mean_value,
  25. xref='paper',
  26. yref='y',
  27. line=dict(color='green', width=2)
  28. )
  29. # 更新中位数线颜色及其宽度
  30. fig.update_traces(
  31. marker=dict(color='blue'),
  32. line=dict(color='blue'),
  33. width=0.4,
  34. # 这里使用线条属性更新中位数线
  35. quartilemethod="exclusive", # 使用独占四分位数法
  36. )
  37. # 手动添加中位数线
  38. median_value = np.median(data)
  39. fig.add_shape(
  40. type="line",
  41. x0=0,
  42. y0=median_value,
  43. x1=1,
  44. y1=median_value,
  45. xref="paper",
  46. yref="y",
  47. line=dict(color="red", width=1)
  48. )
  49. # 显示图表
  50. fig.show()