我正在用Python中的pandas从CSV读取数据,绘制条形图。我将CSV读入数据框
,并使用matplotlib打印它们。
以下是我的CSV的样子:
SegmentName Sample1 Sample2 Sample3
Loop1 100 100 100
Loop2 100 100 100
res = DataFrame(pd.read_csv("results.csv", index_col="SegmentName"))
我绘制并将图例设置为外部。
plt.figure()
ax = res.plot(kind='bar')
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.savefig("results.jpg")
但是,x轴标签是垂直的,因此我无法阅读文本。我在外面的传说也被切断了。
我是否可以将标签的方向更改为水平,然后调整整个图形,使图例可见?
您应该使用matplotlib
API并调用ax。设置_xticklabels(分辨率索引,旋转=0)
如下所示:
index = Index(['loop1', 'loop2'], name='segment_name')
data = [[100] * 3, [100] * 3]
columns = ['sample1', 'sample2', 'sample3']
df = DataFrame(data, index=index, columns=columns)
fig, ax = subplots()
df.plot(ax=ax, kind='bar', legend=False)
ax.set_xticklabels(df.index, rotation=0)
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
fig.savefig('results.png', bbox_inches='tight')
要获得结果图:
或者,您可以调用fig.autofmtxdate()
以获得良好的倾斜效果,当然您可以使用上述(以及更一般的)ax进行修补。设置标签()
:
fig, ax = subplots()
df.plot(ax=ax, kind='bar', legend=False)
fig.autofmt_xdate()
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
fig.savefig('results-tilted.png', bbox_inches='tight')
对于标签的旋转,您可以通过给rot
参数指定度数,简单地告诉pandas为您旋转标签。其他地方也回答了被切断的传说,如:
df = pd.DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6])],
orient='index', columns=['one', 'two', 'three'])
ax = df.plot(kind='bar', rot=90)
lgd = ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
fig.savefig("results.jpg", bbox_extra_artists=(lgd,), bbox_inches='tight')
设置标签时,请尝试使用“旋转”关键字。例如。:
plt.xlabel('hi',rotation=90)
或者,如果需要旋转记号标签,请尝试:
plt.xticks(rotation=90)
至于图例的位置等,可能值得一看紧凑的布局指南
我是新的Android和工作在一个项目中,我必须使用自定义相机与覆盖图像捕获图像。 我可以用叠加(组合图像)捕获图像,但问题是叠加图像方向在保存新的组合图像后发生变化,即叠加图像主要设置在纵向模式,但在保存后显示在横向模式。 我已经搜索了很多关于如何改变可绘制图像的方向,但所有方向的改变都是针对位图图像的。若我将可绘制图像更改为位图并更改旋转,它不会显示任何覆盖图像。我不知道代码出了什么问题。我的
在本教程中,我们将讨论 Matplotlib 中的图例,标题和标签。 很多时候,图形可以不言自明,但是图形带有标题,轴域上的标签和图例,来解释每一行是什么非常必要。 注:轴域(Axes)即两条坐标轴围城的区域。 从这里开始: import matplotlib.pyplot as plt x = [1,2,3] y = [5,7,4] x2 = [1,2,3] y2 = [10,14,12] 这样
我在FrameLayout中的SurfaceView画布上画线。我从相机预览中接收图像,对其进行处理,获取矩形的坐标并在画布上绘制线条。绘制时,我得到这些线在y轴上的位移,线越低,位移越大(见下面的照片): 用红线标记(使用Paint程序,而不是实际的应用程序)下线坐标坐标在位图上的大致位置,矩形的下部绿线(由实际的应用程序放置,在画布上绘制)以及红线显示,坐标移位了多少。顶部的坐标不能穿过屏幕,
我正在使用将多个数据帧绘制为点图。此外,我正在同一轴上绘制所有数据帧。 我该如何在情节中加入传奇? 我的代码获取每个数据帧,并在同一个图形上一个接一个地绘制它。 每个数据框都有相同的列 我的代码: 这将在同一绘图上绘制3条线。然而,这个传说却不见了。文档不接受参数。 一个有效的解决方法是创建一个新的数据帧并使用。 但是我想知道是否有一种方法可以为代码创建一个图例,首先向图中依次添加点图,然后添加图
我正在设法找到解决我问题的办法。我已将图例标签改为第25-75个百分位。这是正确的。但是,当我悬停在线上的时候,问题就出现了。当我在上面的时候应该是75百分位,而不是25-75百分位。这是一个我还想不明白的问题。我希望你能帮帮我。另外,我想为每一行做这一点,所以万一我有第10-90个百分位。我想悬停在两条线上,得到第90百分位或第10百分位。我还在此附加了imageenter图像描述
我正在用html/jsp页面主体中的Google地图做一个web动态项目。 我制作了一个函数,可以创建一个标记(lat、lng、map),并在标记的参数中使用一个特殊的image.png作为图标。 在我的地图中,我制作了两种不同的样式(地图的颜色…)“白天”和“夜晚”。 我想知道当用户点击夜间更改样式时,我如何更改标记的图标。事实上,标记的颜色不适合这种风格的地图... 我尝试用相同的名称初始化不