Python Forum
matplotlib : Raster Plot
Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
matplotlib : Raster Plot
#1
Hey Everyone,

I am stuck at a point whee I need a simple python code generate a raster plot based on the values that is generated as the output of the dictionary.
The code for the dictionary is:


f = open('input.txt')
lines = f.readlines()
dict = {}
cnt = 1
for l in lines:
    ind = l[0]+l[2]+l[4]
    if ind not in dict:
        dict[ind] = cnt
        cnt = cnt + 1
sorted_dict = sorted(dict.items(), key=operator.itemgetter(1))
for t in sorted_dict:
    print(t)
The "input.txt" is 


Output:
0 0 0 0 1 1 65536000 0 0 0 1 1 1 32768000 0 0 0 2 1 1 32768000 0 0 1 0 3 1 65536000 0 1 1 0 2 1 32768000 0 2 1 0 2 2 32768000 0 0 2 0 3 2 -65536000 0 0 0 1 0 1 163840000 0 1 0 2 0 1 163840000 0 2 0 3 0 1 163840000 0 3 0 0 0 1 163840000
I need the first three columns alone. I need to remove repetition and number them in the order. For example, "0 0 0" becomes 1, "0 0 1" become 2, "0 1 1" becomes three. (In the same order as mentioned in the file)
Now, i need to plot a Raster Plot with the assigned numbers on my X axis and and the three digit value ("0 0 0", "0 0 1" and so on) as my Y axis.
Please help me guys..  Sad 
I have no idea of how to plot a raster!  Cry
Reply
#2
#!/usr/bin/python3
import operator
import matplotlib
import matplotlib.pyplot as plt

f = open('input.txt')
lines = f.readlines()
dict = {}
cnt = 1
for l in lines:
    ind = l[0]+l[2]+l[4]
    if ind not in dict:
        dict[ind] = cnt
        cnt = cnt + 1
sorted_dict = sorted(dict.items(), key=operator.itemgetter(1))
for t in sorted_dict:
    print(t)

plt.plot(*zip(*sorted_dict))
plt.show()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to customize x axis in matplotlib.pyplot for a scatter plot? wlsa 9 8,124 Nov-10-2018, 01:32 AM
Last Post: wlsa
  How to plot date series in matplotlib? StrybolData 2 8,304 Jan-25-2018, 07:13 PM
Last Post: StrybolData

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020