python - 如何在熊猫中仅将数据框的键显示为绘图的 xticks?
问题描述
我有一个带有键的数据框,由几个数据框的串联形成,我想制作一个key
单独的元素作为 的图xtickslabel
,但默认索引编号显示在键旁边,作为 xtickslabel。xticklabels 现在是元组(key, index)而不是key
. 我想摆脱默认的索引值。下面带有 plot 语句的示例代码图,(4D, 0), (5D, 0), (6D, 0), and (7D, 0)
生成为 xticklabels,但是,我想要4D, 5D, 6D, 7D
的只是 xticklabels。
import pandas as pd
dfA = pd.DataFrame([2, 4, 6, 8], columns = ['A'])
dfB = pd.DataFrame([4, 6, 8, 10], columns = ['B'])
dfC = pd.DataFrame([6, 8, 10, 12], columns = ['C'])
alldata = pd.concat([dfA, dfB, dfC], keys = ['4D', '5D', '6D', '7D'])
alldata.plot.bar(title = 'Data', ylabel = 'y', xlabel = 'x')
解决方案
使用 for 语句,将每个索引中的第一项保存到列表中,并将其传递给 in 中的参数set_xticklabels
。
# Get the first value of each tuple.
indexList = [item[0] for item in alldata.index]
索引列表:
['4D', '4D', '4D', '4D', '5D', '5D', '5D', '5D', '6D', '6D', '6D', '6D']
所以完整的来源是..
import pandas as pd
dfA = pd.DataFrame([2, 4, 6, 8], columns = ['A'])
dfB = pd.DataFrame([4, 6, 8, 10], columns = ['B'])
dfC = pd.DataFrame([6, 8, 10, 12], columns = ['C'])
alldata = pd.concat([dfA, dfB, dfC], keys = ['4D', '5D', '6D', '7D'])
# Get the first value of each tuple.
indexList = [item[0] for item in alldata.index]
ax = alldata.plot.bar(title = 'Data', ylabel = 'y', xlabel = 'x')
# Set xticklabels
ax.set_xticklabels(indexList);
编辑
- 创建索引“4D”、“5D”、“6D”和“7D”的 DataFrame。
index = ['4D', '5D', '6D', '7D']
dfA = pd.DataFrame([2, 4, 6, 8], columns=['A'], index=index)
dfB = pd.DataFrame([4, 6, 8, 10], columns=['B'], index=index)
dfC = pd.DataFrame([6, 8, 10, 12], columns=['C'], index=index)
- 设置为
axis=1
,则 Dataframes 将横向合并。
alldata = pd.concat([dfA, dfB, dfC], axis=1)
- 绘图(与您的代码相同)
alldata.plot.bar(title = 'Data', ylabel = 'y', xlabel = 'x')
输出:
推荐阅读
- chart.js - chartjs 工具提示标签在显示时在不正确的位置添加引号
- .net - Selenium Web 驱动程序使用,net core 应用程序 - 服务器问题
- python - 创建随机1百万记录正态分布python
- docker - 让 SSL 在 Docker 上与 nopCommerce 一起工作
- sql - SQL 查询以查找给定日期之前的最后一次更改
- angular - 某些路线导航的角度缓存数据并刷新其他路线
- istio - Istio - SPIFFE 信任联盟
- python - 如何使用 tkinter 和 python 将 felica 卡触摸设置为事件触发器
- python - 试图为“总线错误”内核获取更详细的消息
- python - 在数据框中的多个组中应用 Pandas 迭代逻辑