python - 在 matplotlib 图中绘制 PrettyTable
问题描述
我正在尝试在 matplotlib 中绘制 PrettyTable。这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
from prettytable import PrettyTable
myTable = PrettyTable(["Student Name", "Class", "Section", "Percentage"])
# Add rows
myTable.add_row(["Leanord", "X", "B", "91.2 %"])
myTable.add_row(["Penny", "X", "C", "63.5 %"])
myTable.add_row(["Howard", "X", "A", "90.23 %"])
myTable.add_row(["Bernadette", "X", "D", "92.7 %"])
myTable.add_row(["Sheldon", "X", "A", "98.2 %"])
myTable.add_row(["Raj", "X", "B", "88.1 %"])
myTable.add_row(["Amy", "X", "B", "95.0 %"])
points = np.linspace(-5, 5, 256)
y1 = np.tanh(points) + 0.5
y2 = np.sin(points) - 0.2
fig, axe = plt.subplots( dpi=300)
axe.plot(points, y1)
axe.plot(points, y2)
axe.legend(["tanh", "sin"])
axe.text(-10.5, 0.5, myTable)
plt.plot()
如何做到这一点,使漂亮的表格始终保持在情节上方而不扭曲情节。
解决方案
使用table
功能
import numpy as np
import matplotlib.pyplot as plt
from prettytable import PrettyTable
import pandas as pd
myTable = PrettyTable(["Student Name", "Class", "Section", "Percentage"])
# Add rows
myTable.add_row(["Leanord", "X", "B", "91.2 %"])
myTable.add_row(["Penny", "X", "C", "63.5 %"])
myTable.add_row(["Howard", "X", "A", "90.23 %"])
myTable.add_row(["Bernadette", "X", "D", "92.7 %"])
myTable.add_row(["Sheldon", "X", "A", "98.2 %"])
myTable.add_row(["Raj", "X", "B", "88.1 %"])
myTable.add_row(["Amy", "X", "B", "95.0 %"])
# your base plots
points = np.linspace(-5, 5, 256)
y1 = np.tanh(points) + 0.5
y2 = np.sin(points) - 0.2
plt.subplot(2, 1, 1)
plt.plot(points, y1)
plt.plot(points, y2)
plt.legend(["tanh", "sin"])
plt.plot()
# the table
plt.subplot(2, 1, 2)
df = pd.DataFrame.from_records(myTable.rows, columns=myTable.field_names)
plt.table(cellText=df.values, colLabels=df.columns, loc='center')
plt.show()
推荐阅读
- material-ui - 与 Formik 一起使用时如何在 Material UI 中禁用文本字段
- iphone - 我的网站没有在 iphone 上显示?它显示的问号有这么奇怪的东西?
- mysql - RStudio/MySQL 连接错误:无法加载插件 sha256_password
- quarkus-rest-client - 如何在 quarkus restAPI 中实现 angularjs
- apache-flink - Apache Flink 检查点卡住
- c++ - 使用 std::addressof(std::cout) 代替 &std::cout 有什么风险吗?
- maven - 当所有设置都正确时,Jenkins 自动部署失败。-- mapperLocations, Spring 中的错误 (illegalArgumentException, TomcatManagerException)
- php - Symfony 安装原则
- angular - 如何在使用 Renderer2 创建的元素上设置指令和属性绑定
- r - 在ggplot中为每个类的平均值添加红点