У меня есть два файла в качестве входных данных, которые выглядят следующим образом:Участка Сиборн Barplots в сюжетном с Python
col1 col2
A B
C C
B A
A A
A C
C A
B B
Значение, у меня есть два столбца с буквами, разделенных пробелами. Я хочу рассчитать количество вхождений этих букв, каждый столбец в своем собственном барплоте. Предположим, что оба файла имеют разное распределение букв.
Это код:
from collections import Counter
from os.path import isfile, join
from os import listdir
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(color_codes=True)
inputDir = "/tmp/files/"
inputFiles = [ f for f in listdir(inputDir) if isfile(join(inputDir, f)) ]
fig, axes = plt.subplots(figsize=(6,6), ncols=2, nrows=len(inputFiles))
z=0
while inputFiles:
files = inputFiles[0]
inputFiles.remove(files)
c = Counter()
a = Counter()
x1 = []
y1 = []
x2 = []
y2 = []
with open(inputDir + files, "r") as f2:
for line in f2:
line = line.strip()
if line.split(" ")[0] != "col1":
c[str(line.split(" ")[0])] += 1
a[str(line.split(" ")[1])] += 1
try:
for cc in c:
x1.append(cc)
y1.append(c[cc])
row = z // 2
col = z % 2
ax_curr = axes[row, col]
sns.barplot(x1, y1, ax=ax_curr)
z+=1
for aa in a:
x2.append(aa)
y2.append(a[aa])
row = z // 2
col = z % 2
ax_curr = axes[row, col]
sns.barplot(x2, y2, ax=ax_curr)
z+=1
except:
continue
sns.plt.show()
Результат должен быть один образом, где у меня есть следующий barplots как сюжетные:
---------------------------------------
| | |
| | |
| barplot col1 | barplot col2 |
| file1 | file1 |
| | |
--------------------------------------|
| | |
| | |
| barplot col1 | barplot col2 |
| file2 | file2 |
| | |
---------------------------------------
Таким образом, высота каждой полосы должна соответствовать номеру каждой буквы.
Проблема до сих пор заключается в том, что бары в каждом подзаголовке выглядят совершенно по-другому, и я не могу понять, почему. Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию.
Вы полностью право- у меня были разные данные и регулировать свой код в ночь на новые файлы данных, не запуская их. Простите за это. Я скорректировал свой код, и он все еще не работает. В левом верхнем углу у меня есть тысячи баров, в правом верхнем углу всего несколько баров (что не может быть правильным, так как в обоих файлах около 100 тыс. Строк). –
Надеюсь, вы понимаете, что нам нужно поговорить о проблеме на основе информации, которую мы оба имеем здесь. Поэтому, если у вас есть проблема с данными, которые отличаются от того, что вы показываете в вопросе, вам сложно помочь. Затем вам необходимо создать новый [MCVE], уменьшив данные до суммы, которую можно разделить здесь, но все равно воспроизводит проблему. – ImportanceOfBeingErnest