小编M_S*_*mal的帖子

使用 matplotlib 在 x 轴上自定义分类变量排序

我想按照我指定的顺序对 x 轴上的月份进行排序。我在谷歌上进行了广泛的搜索,以了解如何做到这一点,但没有运气。我对 R 语言非常熟悉,我会在 R 使用factor class和它的级别中很容易地做到这一点。但是我对 python 比较陌生,我从阅读中学到的是Categorical dtypepython 中最接近factorR。但是,这两种语言中的这些类似乎存在主要的行为差异。使用绘制时没有分类顺序的排序,pyplot.bar()但在seaborn条形图中正确排序了相同的图。

pyplot.bar() 的数据框中是否有自定义排序分类变量的选项?

pandas = 0.22.0
matplotlib = 2.1.2
seaborn = 0.8.1



import pandas as pd
import matplotlib.pyplot as plt
from pandas.api.types import CategoricalDtype


TestData = pd.DataFrame({'value':[1,2,5,3,5,6,8,9,8,1,2,8,9],'Month':['Jan','Mar','Jan','Feb','May','Apr','Jan','Mar','Jan','Feb','May','Apr','May']})

# Applying custom categorical order
MonthLabels = ['Jan','Feb','Mar','Apr','May']
M_catType = CategoricalDtype(categories = MonthLabels, ordered = True)
TestData['Month'] = TestData['Month'].astype(M_catType)

plt.bar('Month','value', data=TestData)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 在此处输入图片说明

解决了

可能是 matplotlib 版本的错误。阅读这篇文章后,我将版本更新为 2.2.2 ,一切都按预期工作(即,轴按照设置类别时提供的顺序进行排序。我还使用下面的代码设置类别,

TestData['Month'] = pd.Categorical(TestData['Month'], …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

5
推荐指数
1
解决办法
5051
查看次数

R,CSV中的非唯一值,这是由于字符列值中的空白区域看不见的点

我试图在(大)数据集中找到唯一的物种,但它在unique()结果中返回两次相同的名称.

TestData <- read.csv("Data\\TestData.csv", stringsAsFactors = FALSE)

unique(TestData$Species)

[1] "Amblyeleotris aurora"  "Amblyeleotris aurora"  "Cetoscarus bicolor"    "Cetoscarus bicolor"    "Cephalopholis polleni"
[6] "Cephalopholis polleni"
Run Code Online (Sandbox Code Playgroud)

作为非唯一返回的相同物种之间没有拼写不匹配,当我查看csv文件时,它们看起来都是一样的.但是,当我将名称复制到R控制台或脚本时,有一个红色.将Genus和Species分开.喜欢Amblyeleotris.aurora.

这可能是csv文件的问题,但是当我在Notepad ++和MS excel中查看文件时,不会出现点.但是,对于相同物种(即"Amblyeleotris aurora"和"Amblyeleotris aurora"),MS Excel中的相等性检查评估为false.

如上所述,这更可能是csv的问题,但我想找到是否有办法在R内克服这个问题.

如果已经在某个地方回答过这个问题,或者这个问题太简单了,我可以提前道歉,但我没有在堆栈或互联网上找到任何解决方案.

下面是示例TestData csv文件的链接,用于复制ScriptPanel的示例和屏幕截图以显示红点.

TestData.csv文件

在此输入图像描述

干杯Shimal

csv excel r

1
推荐指数
1
解决办法
47
查看次数

标签 统计

csv ×1

excel ×1

matplotlib ×1

python ×1

r ×1