use*_*660 40 python plot matplotlib
我是python的新手,我正在尝试使用matplotlib在同一个图中绘制多行.我的Y轴的值存储在字典中,我在下面的代码中在X轴上创建相应的值
我的代码是这样的:
for i in range(len(ID)):
AxisY= PlotPoints[ID[i]]
if len(AxisY)> 5:
AxisX= [len(AxisY)]
for i in range(1,len(AxisY)):
AxisX.append(AxisX[i-1]-1)
plt.plot(AxisX,AxisY)
plt.xlabel('Lead Time (in days)')
plt.ylabel('Proportation of Events Scheduled')
ax = plt.gca()
ax.invert_xaxis()
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是我逐个单独绘制单独的数字.任何人都可以帮我弄清楚我的代码有什么问题吗?为什么我不能生成多行绘图?非常感谢!
Gam*_*iac 76
这很简单:
import matplotlib.pyplot as plt
plt.plot(<X AXIS VALUES HERE>, <Y AXIS VALUES HERE>, 'line type', label='label here')
plt.plot(<X AXIS VALUES HERE>, <Y AXIS VALUES HERE>, 'line type', label='label here')
plt.legend(loc='best')
plt.show()
Run Code Online (Sandbox Code Playgroud)
您可以随意添加任意数量的内容plt.plot
.至于line type
,你需要先指定颜色.所以对于蓝色,它是b
.对于正常的线路而言-
.一个例子是:
plt.plot(total_lengths, sort_times_heap, 'b-', label="Heap")
Run Code Online (Sandbox Code Playgroud)
Sti*_*ian 15
由于我没有足够的声誉来评论我会在2月20日10:01回答liang问题作为原始问题的答案.
为了使行标签显示您需要将plt.legend添加到您的代码中.建立在前面的例子上,还包括title,ylabel和xlabel:
import matplotlib.pyplot as plt
plt.plot(<X AXIS VALUES HERE>, <Y AXIS VALUES HERE>, 'line type', label='label here')
plt.plot(<X AXIS VALUES HERE>, <Y AXIS VALUES HERE>, 'line type', label='label here')
plt.title('title')
plt.ylabel('ylabel')
plt.xlabel('xlabel')
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚在再次阅读你的问题后意识到,我没有回答你的问题.您想在同一个图中输入多行.但是,我会留下它,因为这次我很好地服务了我.我希望你有一天能找到有用的东西
我在学习python时发现了这一段时间
import matplotlib as plt
import matplotlib.gridspec as gridspec
fig = plt.figure()
# create figure window
gs = gridspec.GridSpec(a, b)
# Creates grid 'gs' of a rows and b columns
ax = plt.subplot(gs[x, y])
# Adds subplot 'ax' in grid 'gs' at position [x,y]
ax.set_ylabel('Foo') #Add y-axis label 'Foo' to graph 'ax' (xlabel for x-axis)
fig.add_subplot(ax) #add 'ax' to figure
Run Code Online (Sandbox Code Playgroud)
你也可以在一个图中制作不同的尺寸,在这种情况下使用切片:
gs = gridspec.GridSpec(3, 3)
ax1 = plt.subplot(gs[0,:]) # row 0 (top) spans all(3) columns
Run Code Online (Sandbox Code Playgroud)
请咨询文档以获取更多帮助和示例.这一点点我自己输入了一次,并且非常基于/复制了文档.希望它有所帮助......我记得在一个图中了解不同尺寸图的切片符号时,#$%是一个痛苦.在那之后,我认为这很简单:)
归档时间: |
|
查看次数: |
193286 次 |
最近记录: |