Pyplot tabelldiagram ser fel ut
Hej! Jag ska plotta en bar chart med hashtags på x-axeln och antal likes på y-axeln, problemet är att på grafen ser det ut som att alla hashtagsen fått samma antal likes, men när jag printar listan med likes varierar dem ganska mycket, hur får jag så att höjden på bar:en överrensstämmer med antalet likes?
import json
import pandas as pd
import matplotlib.pyplot as plt
import functools
import operator
import math
# The hashtag list later is a list of lists, this function flattens it so it can be used for the bar graph
regular_list = []
def transform(nested_list):
for element in nested_list:
if type(element) is list:
regular_list.append(element)
else:
regular_list.append([element])
return regular_list
f = open('santacruz_combined.json')
data = json.load(f)
hashtagList = []
likeList = []
filteredHashList = []
for post in data:
likes = post["likes"]
hashes = post["hashtags"]
if likes > 40000:
likeList.append(likes)
hashtagList.append(hashes)
regular_2D_list = transform(hashtagList)
x = functools.reduce(operator.iconcat, regular_2D_list, [])
y = likeList
print(len(x))
print(len(y))
#print(x)
print(y)
low = min(y)
high = max(y)
plt.ylim([math.ceil(low-0.5*(high-low)), math.ceil(high+0.5*(high-low))])
plt.ylabel('Likes')
plt.xlabel('Hashtags')
plt.bar(x, max(y))
plt.show()
Ser ut som du plottat maxvärden max(y) istf y
Ett tips var noga med indentationerna, koden blir mycket lättare att följa särskilt för oss nya läsare du själv kommer ju i stort sett ihåg strukturen. Men av egen erfarenhet när jag kommit tillbaka till egen kod ett par decennier senare för att modifiera den efter en förändrad verklighet ---- man är lost completely lost.
En fördel med python är att man måste indentera rätt för att kunna köra programmet, det är bara vi som inte får se det.