【问题标题】:Python: plot a dict of keys and valuesPython:绘制键和值的字典
【发布时间】:2022-11-27 08:47:48
【问题描述】:

我想绘制数据字典(键和值)的 x、y 图。 键是日期时间值。 key 的每个值都包含一个对象,即 my_data,它具有属性 - name、count、totalCount

在图表上,在 x 轴上,我想使用键(日期时间) 在 y 轴上,我想多绘制 my_data 属性,每个属性一个单独的点 - my_data.name, my_data.count my_data.totalCount

请指教。

谢谢

【问题讨论】:

  • 您能否分享一个最小的可重现示例代码和数据来重现该问题?
  • 我会在字典中使用字典。所以父字典有 datetime 有一个键,里面是字典,键从 1 到 3 代表对象的属性,值是属性值。所以在情节上我只是把属性值作为文本。

标签: python matplotlib


【解决方案1】:

这是我想到的解决方案的示例:

#!/usr/bin/env ipython
# --------------------
import numpy as np
import matplotlib as mpl
mpl.rcParams['font.size'] = 20
import matplotlib.pylab as plt
import datetime
# -------------------------------------
# ==================================================
N = 5
dates = [datetime.datetime(2022,11,10)+ii*datetime.timedelta(days=1) for ii in range(5)];
count = 5+5*np.random.random(N,)
name = ['Name'+str(ii).rjust(2,'0') for ii in range(5)]
totcount = 10+2*np.random.random(N,)
# --------------------------------------------------
plotdata = {dates[ii]:{1:round(count[ii],1),2:name[ii],3:round(totcount[ii],1)} for ii in range(len(dates))}
# --------------------------------------------------
fig = plt.figure(figsize=(20,10));ax = fig.add_subplot(111);
for dval,pdict in plotdata.items():
    for kv,vv in pdict.items():
        ax.text(dval,kv,str(vv),ha='left',va='bottom')
        ax.plot(dval,kv,ms=10,color='k');
ax.set_ylim((0,5)) # to squeeze more together the values
ax.set_yticklabels('') # to remove y-axis text
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 2021-08-02
    • 1970-01-01
    • 2021-07-10
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多