我正在試驗第一次使用python繪圖,我想通過繪製學生的一些進度來學習我所學到的東西。我的進度數據與下面我嘲笑的格式相同。我用MSPaint(抱歉)嘲笑我認爲是一張體面的圖表,向他們展示他們的進步。使用Python繪製學生進度圖
什麼是這種類型的圖的正確名稱,什麼是實現它的第一步?我看不到任何相似的東西http://matplotlib.org/或https://plot.ly/
我正在試驗第一次使用python繪圖,我想通過繪製學生的一些進度來學習我所學到的東西。我的進度數據與下面我嘲笑的格式相同。我用MSPaint(抱歉)嘲笑我認爲是一張體面的圖表,向他們展示他們的進步。使用Python繪製學生進度圖
什麼是這種類型的圖的正確名稱,什麼是實現它的第一步?我看不到任何相似的東西http://matplotlib.org/或https://plot.ly/
我花了刺傷生成matplotlib您的示例圖。我懷疑別人更強matplotlib-FOO可以大大提高這一:)
import matplotlib.pyplot as plt
import numpy as np
students = ['steve', 'bob', 'ralph']
progress = [
[1, 3, 4, 4, 5],
[2, 3, 4, 4, 5],
[3, 3, 4, 5, 5]]
(fig, ax) = plt.subplots(1, 1)
# Offset lines by some fraction of one
dx = 1.0/len(progress)
xoff = dx/2.0
for i, (name, data) in enumerate(zip(students, progress)):
ax.plot(np.arange(len(data)) + xoff, data, label=name, marker='o')
xoff += dx
ax.set_xticks(np.arange(0, len(progress[0]) + 0.01, dx), minor=True)
ax.set_xticks(np.arange(1, len(progress[0])+1))
labels = students * len(progress[0])
week = 1
for i,l in enumerate(labels):
if l == students[1]:
# hack to add Week label below the second label for each block
labels[i] = "%s\nWeek %s" % (l, week)
week += 1
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.set_xticklabels(labels, fontsize=8, ha='left', minor=True)
ax.set_xticklabels([])
ax.tick_params(which='both', direction = 'out')
ax.tick_params(axis='x', which='major', width=4)
ax.tick_params(axis='x', which='major', length=7)
ax.tick_params(axis='y', which='major', width=0, length=0)
ax.set_ylim(0, 6)
ax.set_yticks(range(1, 6))
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
ax.set_title("Student Progress")
ax.legend(loc='best')
fig.show()
像這樣的東西可能是你在找什麼
import matplotlib.pyplot as plt
weeks = range(1,6)
steve = [1, 3, 4, 4, 5]
bob = [2, 3, 4, 4, 5]
ralph = [3, 3, 4, 5, 5]
plt.figure()
plt.plot(weeks, bob, label='Bob')
plt.plot(weeks, steve, label='Steve')
plt.plot(weeks, ralph, label='Ralph')
plt.title('Student Progress')
plt.ylabel('Score')
plt.xlabel('Week')
plt.xticks(range(6))
plt.ylim(0, 6)
plt.legend(loc='lower right')
plt.show()
當兩個學生每週都有相同的情況時,給每條線條添加不同的短劃線風格會更加明顯(在這個例子中,鮑勃很難挑選出來 - 第4周到5周,他是怎麼做的?) – cphlewis
也許這可以讓你在正確的軌道上:http://matplotlib.org/examples/api/barchart_demo.html G1,G2 ...可能是你的周,和男人/女人是你的學生。 –