From 45bd9b81ea43668e710489751cb57ceb86ed7d69 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Thu, 21 Sep 2017 18:46:09 +0200 Subject: [PATCH] Improve picosoc performance.{py,png} --- picosoc/performance.png | Bin 37585 -> 33032 bytes picosoc/performance.py | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/picosoc/performance.png b/picosoc/performance.png index 3450305fc42e00b00e0f5944ed2e6ddb8fb41761..4f7da5bc14b300a16b917c13fc6b437c4c9cee01 100644 GIT binary patch literal 33032 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 literal 37585 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 diff --git a/picosoc/performance.py b/picosoc/performance.py index a66f5cd..dc1fb52 100644 --- a/picosoc/performance.py +++ b/picosoc/performance.py @@ -64,10 +64,10 @@ for line in text.split("\n"): labels.append(line[0]) values.append(int(line[2], 16)) -plt.figure(figsize=(10, 3)) +plt.figure(figsize=(10, 5)) plt.title("Performance comparison for different PicoSoC SPI flash configurations") plt.plot(range(len(labels)), values[0] / np.array(values)) -plt.xticks(range(len(labels)), labels, rotation=90) +plt.xticks(range(len(labels)), labels, rotation=80) for color, x1, x2 in [["black", 0, 0], ["red", 1, 8], ["green", 9, 16], ["red", 17, 24], ["green", 25, 32], ["red", 33, 40], ["green", 41, 48]]: @@ -82,5 +82,6 @@ plt.xlim(-1, len(values)) plt.ylim(0, 9) plt.grid() +plt.gcf().subplots_adjust(bottom=0.3) plt.savefig("performance.png") # plt.show()