Gnuplot এ, লাইনগুলি দিয়ে কীভাবে প্লট করবেন তবে হারিয়ে যাওয়া ডেটা পয়েন্টগুলি এড়িয়ে যাবে?


20

আমি প্রতিদিনের সাথে সম্পর্কিত একটি মান পেয়েছি:

120530    70.1
120531    69.0
120601    69.2
120602    69.5
# and so on for 200 lines

লাইনগুলির সাথে gnuplot এ এই ডেটা প্লট করার সময়, ডেটা পয়েন্টগুলি সুন্দরভাবে সংযুক্ত থাকে। দুর্ভাগ্যক্রমে, এক সপ্তাহেরও বেশি জায়গায় পয়েন্টগুলি অনুপস্থিত হতে পারে। জ্ঞানুপ্লট এই ব্যবধানগুলির উপর দীর্ঘ লাইন আঁকেন। টানা দিনে আমি কীভাবে জিনুপ্লটকে সংযুক্ত পয়েন্টগুলি তৈরি করতে পারি?

সমাধানগুলির জন্য যেগুলি ডেটা প্রিপ্রোসেসিংয়ের প্রয়োজন তা ঠিক আছে, কারণ আমি ইতিমধ্যে এটি কোনও স্ক্রিপ্ট দিয়ে মসৃণ করেছি।

আমি যা ব্যবহার করি তা এখানে:

set xdata time
set timefmt "%y%m%d"
plot "vikt_ma.txt" using 1:2 with lines title "first line", \\
     ""            using 1:3 with lines title "second line"

উদাহরণ: gnuplot উদাহরণ


সমস্যাটির একটি চিত্র এখানে দেওয়া হয়েছে: i.stack.imgur.com/aYH4N.png (কোনও কারণে পোস্টে চিত্রগুলি যুক্ত করা যায় না)। আমি চাই বৃত্তাকার জায়গাটি ফাঁকা ছেড়ে দেওয়া হোক।
আন্না

সুপারভাইজারে আপনাকে স্বাগতম। আপনি পারবেন না কারণ আপনি এখনও এই সাইটে যথেষ্ট খ্যাতি সংগ্রহ করেন নি। আপনি যদি আমার পরিবর্তনগুলি থেকে অসন্তুষ্ট হন তবে অবশ্যই আপনি সেগুলি ফিরিয়ে দিতে পারেন (বা আবার সম্পাদনা করুন)।
বারান

উত্তর:


16

খালি রেকর্ড রাখুন (ফাঁকা লাইন) যেখানে কোনও ডেটা নেই। ডক্স থেকে :

একক ফাঁকা রেকর্ডগুলি একটি প্লটে বিরতি নির্ধারণ করে; কোনও লাইন ফাঁকা রেকর্ড দ্বারা বিচ্ছিন্ন পয়েন্টগুলিতে যোগ দেবে না (যদি তারা একটি লাইনের শৈলীতে প্লট করা হয়)।


1
ধন্যবাদ, এটি সমস্ত সিরিজে বিচ্ছিন্নতার জন্য কাজ করে। একটি সিরিজে আমার বিরতি থাকলেও অন্যটি নয় কী?
আনা

8
এটি মানগুলির পরিবর্তে ড্যাশ রেখে কাজ করেছিল।
আনা

আমার জন্য - এটি 2 স্পেস অক্ষর সহ একটি লাইন ছিল।
3kstc

9

আপনি অনুপস্থিত ডাটা পয়েন্টগুলির জন্য মান হিসাবে কোনও স্ট্রিং ব্যবহার করতে পারেন বা set datafile missingকমান্ডটি ব্যবহার করে স্পষ্টভাবে একটি অনুপস্থিত ডেটা স্ট্রিং নির্দিষ্ট করতে পারেন ।

আপনি যদি তারপর লাইন প্লট করে

plot "vikt_ma.txt" using 1:($2) with lines title "first line"

তারপরে জ্ঞানপ্লট একটি ফাঁক ছেড়ে দেবে।


2

এক্স মানগুলির মধ্যে দূরত্বটি কিছু প্রান্তিক ছাড়িয়ে গেলে স্বয়ংক্রিয়ভাবে ফাঁক তৈরি করতে আপনি এ জাতীয় কিছু করতে পারেন:

previous=1
current=1
shift(x) = (previous=current, current=x)
yornothing(x,y) = ( shift(x), abs(x-previous)<7200?y:sqrt(0/0))

plot "file.dat" using 1:(yornothing($1,$2)) with lines

আপনাকে "পূর্ববর্তী" এবং "বর্তমান" এবং প্রান্তিকের (উপরের উদাহরণে "7200") এর প্রাথমিক মানগুলি সমন্বয় করতে হবে।

এক্স এর পূর্ববর্তী মানটি সংরক্ষণ করতে "শিফট" ফাংশনটি "ইয়র্নথিংং" ব্যবহার করে। প্রতিটি বার ইয়র্নিং বলা হয়, এটি y এবং "0/0" এর মান দেয়, এক্স এবং এর পূর্ববর্তী মানের পার্থক্যের নিরঙ্কুশ মান প্রান্তিকের চেয়ে বেশি হয় কিনা তার উপর নির্ভর করে।

0/0 এর একটি মান gnuplot কে সেই বিন্দুটি উপেক্ষা করতে বলে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.