【发布时间】:2021-06-03 15:03:54
【问题描述】:
为了继续研究如何绘制 xml 文件并继续检查我的代码,我首先对signal.attrib ["Value"] 应用了除法,因为它显示了一些字符串值,而我感兴趣的是数值。
正如您在下面看到的,我依赖于Pandas and SQL Compare 的文档。
import xml.etree.ElementTree as ET
import pandas as pd
from matplotlib import pyplot as plot
def transformData (rootXML):
print ("File:", rootXML)
file_xml = ET.parse (rootXML)
data_XML = [
{"Name": signal.attrib ["Name"],
# "Value": signal.attrib ["Value"]
"Value": int (signal.attrib ["Value"].split(' ')[0])
} for the signal in file_xml.findall (".//Signal")
]
signals_df = pd.DataFrame (XML_data)
signals_df [(signals_df ["Name"] == 'Status') |
(signals_df ["Name"] == 'Lock_Stat')]. plot (kind = 'line', rot = 0)
plot.title ('Changing signals every time they occur')
plot.xlabel ('Signal name')
plot.ylabel ('Signal value')
plot.show ()
plot.clf ()
plot.close ()
我用一个完整的 xml 文件运行它,其中包含很多信号,例如在 this link 中找到的那个:(我把它放在这里是因为它不允许我附加代码,因为 xml 的长度)
所以一旦我编译了所有的数据,我运行了图表,结果是这样的(不是所有的标签都在文件中):
实际上我必须使用类似于this page 底部附近的“切换点跟踪”图。但现在我正在研究它,它以线条图的形式为我服务。
但是如何将它在 x 轴上除以标签的名称(“名称”)而不是数字 0、20、40 等,即如何使所有名称出现在图表上和垂直放置?是否有可能做到这一点?或者我不知道... Matplotlib 是否可以将标签转换为数字,然后在图形旁边的标签旁边绘制数字的描述,以使图形更易于理解?
【问题讨论】:
-
df _ Signals?Split('')?请将语法和空间问题修复为可编译代码。
标签: python matplotlib axis-labels